最近,我遇到了a question of how jQuery
acts as both a function, as well as an object .使之成为可能的是 jQuery
实际上是一个附加了属性(如 $.each()
)。
现在在我的项目中,我想创建一个模型(从技术上讲它是一组东西),向它添加方法,然后将它返回给一个将保存它的变量。这样做明智吗?它会干扰任何东西吗?
//i did it like this:
function createModel(name){
var model = internal.models[name] = [];
model.add = function(){..logic to add to the model..}
//more augmented methods here...
return model;
}
//create a model
var myModel = createModel('test');
//then i can do add
myModel.add('foo');
除此之外,我不想弄乱实际的 Array
原型(prototype)内容。我正在为当前创建的数组执行此操作。
我制作的模型不像 Backbone.js 的模型那样是一个数据单元。它更像是 Backbone.js 的集合或数据库表的同义词。
最佳答案
那种风格的东西可能会做,也永远不要以数组的形式启动模型,总是采用函数(构造函数)和适当的对象,它们为此更加灵活。
var model = function(data) {
this.data = data;
};
model.prototype.getData = function() {
return this.data;
};
var mod = new model({foo:'foo'});
mod.getData().foo
关于javascript - 增加数组的属性/方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10140970/