javascript - 自定义对象的主干结构

标签 javascript backbone.js

查看一些 Backbone 示例,我看到一些像这样的简单模型:

var Vehicle = Backbone.Model.extend(
{
   summary: function () {
   return 'Vehicles move';
   }

});

Vehicle = (function () {
return Backbone.Model.extend({
   defaults: {

   },

   initialize: {

   }
});

})();

编辑:(澄清) 我想知道是否有人可以解释定义主干对象的两种方法之间的差异以及更传统的方法。我知道它们内部没有相同的方法,但我更感兴趣的是,在第一个方法中,它们如何扩展主干模型,而在第二个方法中,它们如何将其包装在闭包中。我不确定我是否真正掌握了每种模式的含义以及何时使用哪种模式。提前致谢!

最佳答案

我认为第一种形式更为传统,特别是因为我什至在主 Backbone.js 上看不到第二种形式。根本没有网站。

要了解它们如何做同样的事情,首先请注意 Backbone.Model.extend() 是一个也返回函数的函数:

> Backbone.Model.extend()
  function () { return parent.apply(this, arguments); }

因此,变量 Vehicle 最终被设置为一个函数,无论您如何看待它,该函数都是模型构造函数方法。不过,我认为第二种形式更加间接且不必要地复杂:它将 Vehicle 设置为调用函数的结果,该函数本身仅返回 Backbone.Model.extend() code>,所以它只是表达同一件事的更复杂的方式。

关于javascript - 自定义对象的主干结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15562988/

相关文章:

javascript - 主干内存泄漏与否?

javascript - ionic2 ionic native 和 cordova-plugin-gyrograph 错误

javascript - 单击单选按钮时未获取更改事件

javascript - JavaScript 中的非破坏性 split() ?

javascript - MEAN 应用程序,在服务器上发布之前我应该​​更改什么?

javascript - 有没有办法在 backbone.js 中有条件 "add"事件?

javascript - 在 Backbone.js 中使用 Jade 模板

javascript - Backbone.Collection 触发 'reset' 但不是 'add'

javascript - 在 NodeJS 中迭代循环时出现 TypeError

javascript - ReactCssTransitionGroup 使用 React-route.Link pageTransition