Javascript:如何检测数组调用?

标签 javascript arrays methods native

我对原生 javascript 调用有疑问。

我有一个类(class):

x = function(arr) { this.arr = arr; return this; }
x.prototype.toArray = function() {
       return this.arr;
};
x.prototype.test = function() { alert('but i m object too!'); };

当我打电话时:

var test = new x(['a','b','c']);

alert(test[0]);

alert(test.test());

需要得到结果“a”和“但我也反对!”对话框。

我想将此功能用作语法糖,就像在将选择器用作数组后返回 DOM 元素时在核心中使用 jquery 一样。如何实现?

更新:

感谢您的回答,但我需要在 github 上的 jquery 代码 blob 中的证明

最佳答案

数组只不过是一个以特殊方式处理数字属性的对象。您必须将数组的每个元素复制到实例,使用元素的索引作为属性名称。您还应该设置 length 属性,使其成为真正的“类数组”对象。

var X = function(arr) {
    for (var i = 0, l = arr.length; i < l; i++) {
        this[i] = arr[i];
    }
    this.length = arr.length;
};

var x = new X(['a', 'b', 'c']);
alert(x[0]);

关于Javascript:如何检测数组调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20509596/

相关文章:

javascript - 我怎样才能从数组中获取值

javascript - 在映射过程中对每个自动生成的可观察值进行后处理

java - 覆盖和重载的方法

java - 在Java中查找既是三角形数又是星形数的数字

javascript - 我可以为对象的方法/属性选择器设置正则表达式吗?

javascript - 替代 angular.element(document).ready

javascript - VueJS 动态样式绑定(bind)?

javascript - 如何检查变量值是否包含在 JavaScript 数组中

php - 将数组存储在sql数据库中

C# 通过 MemoryStream 追加 Pdf 页面