javascript - 增加数组的属性/方法?

标签 javascript arrays properties

enter image description here

最近,我遇到了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/

相关文章:

javascript - 有没有有效的方法将我的 <span> 元素包含在以下 JavaScript 中?

c - C 初学者,字符串数组

java - 计算字符串数组的每个字符串中的反斜杠

html - text-decoration 缺乏继承性的原因是什么?

java - 在java应用程序中抽象出属性文件的硬编码路径名的可能方法

c# - 将参数传递给用户控件的 javascript 函数

javascript - 如何将 AJAX 检索的值返回给 JavaScript 中当前函数的父函数?

JavaFX 使用非 JavaFX 线程的 UI 中使用的提取器更新 ObservableList

javascript - GOJS 将 Canvas 图导出为图像

java - 快速查找数组中元素的数量