Backbone.js Interview Questions | Eklavya Online

Backbone.js Interview Questions

A view is the important part of the Backbone.js architecture. In a Backbone.js application, a view is responsible for the end user interface. The view defines the way in which the application looked at the user. The View is also responsible for listening to the events and reacting to them accordingly.

Two methods can be used to manipulate the Backbone.js utility:

  1. Backbone.noConflict: It returns the Backbone objects to its original value and provides a facility to store the reference to a backbone. It can be used to embed the backbone on third-party websites, where you don’t want to thrash the existing backbone.
  2. Backbone.$: This property is used when you have multiple copies of jQuery on the page or want to tell Backbone to use a particular object as its DOM / Ajax library.

backbone.js supports Model-View-Controller architecture that allows developers to separate business logic and GUI logic.

Model: It consists of data and the logic of the data retrieval from the server.
View: It consists of the code which is responsible for the end user interface, i.e., the way in which the application is presented to the user.
Controller: It is the main application logic which controls the behavior of the application. It is a part of the code which acts as a bridge between Model and View.

Backbone.js is required in following conditions:

  • When you are developing a web application that requires a lot of JavaScript.
  • It is required when you want to give structure to your code if your application needs to be scalable.
  • Backbone is useful when a web application has to work with jQuery to traverse the DOM or give animations.
  • When model changes and you want to update the HTML application automatically.

Model Binder is a class which is used to bind the model and the view together. The binding is done to archive synchronization.

Backbone.js is a light weighted Framework based on JavaScript. It is used to develop the client-side applications which run on a web browser. Developing client-side applications in Backbone.js is pretty easy and consumes a lesser amount of time. It supports Model-View-Controller architecture.

Unbinding function is used to remove the bindings on the model.

A Collection can be defined as an ordered set of modules. In Backbone.js, there is a collection class which provides some useful methods to deal with the collections. We can extend the collection class to provide some additional functionalities

Some most robust functionalities of the model binder are

  • It allows the developer to define the scope when binding is created using J-Query.
  • In some of the cases, we can rely on the default scoping rules which are based on the name attribute of HTML.
  • The scoping rules can be redefined if the views are complicated.

The backbone.js is written in JavaScript. It is a JavaScript library that contains a RESTful JSON interface.

There are the following configuration options available in Backbone.js.

  1. modelSetOptions
  2. boundAttributes
  3. supressThrows
  4. converter
  5. change Triggers
  6. InitialCopyDirection

Following are the three js files that you require to setup Backbone.js:

  • jQuery
  • Backbone
  • Underscore

Advantages of Backbone.js:

  • You can develop a web application with Backbone.js by using JavaScript with the minimal set of data-structuring (models & collections) and user interface (views & URLs).
  • It is best for developing MVC like web applications, single page web applications or complex JavaScript web applications in an organized and structured manner without JavaScript code mixing with HTML.
  • It provides API with many functions.
  • It provides a key-value binding and custom events.
  • It facilitates you to abstract your data into models and your DOM application into views and binds the two together using events.

Backbone.js was initially released on October 13, 2010, by Jeremy Ashkenas.

The data, which is returned from the server in response to a fetch or store operation, is called parse. It is used to return the model’s data by passing into the response object.

Backbone.js routers are used to route the application’s URL to some particular actions and events. At least one route must be present for every defined router. It also defines the URL representation of the application’s object when web applications provide linkable, bookmarkable, and sharable URL.

The Converter is a function which is used to convert the JavaScript object to a model. It is invoked when the transition is made between an HTML element and the model’s attribute.

The latest stable version of Backbone.js is 1.3.3, and it was released on April 5, 2016.

The Backbone.js setElement method is used to apply the backbone view to a different DOM element

Backbone.js event can be defined as the module which can be mixed with any object. There are following methods which are used to manipulate Backbone.js events,

  • on – It binds an event to an object and executes the callback whenever an event is fired.
  • off – It removes callback functions or all events from an object.
  • trigger – It invokes the callback functions for the given events.
  • once – It extends the backbone model class while creating your own backbone model.
  • listenTo – It informs one object to listen to an event on another object.
  • stopListening – It can be used to stop listening to events on the other objects.
  • listenToOnce – It causes the listener, to occur only once before the callback function is being removed.

Sync is a function that is called every time. It attempts to read or save a model to the server. It persists the state of the model to the server.

Main components of Backbone.js:

  • Model – It performs various types of action on the data like validation, conversion, computed properties, access control.
  • View – It specifies how your data looks like.
  • Collection – It handles the loading and saving of new models to the server.
  • Router – It is used for routing client-side applications and connecting them to actions and events.
  • Event class object – It facilitates the objects to bind and trigger the custom events by using the desired name of our choice.