要将 size()
方法添加到 Array
对象,我会这样做:
if (!Array.size) {
Array.prototype.size = function() {
return this.length;
};
}
是否有一种简单的方法来定义 size
property,它的工作方式与 length
类似?
(我真的不需要它,我只是想了解这是否可以用 Javascript 轻松实现。)
最佳答案
与 ES5这是可能的。在 Array
原型(prototype)上添加一个 size
属性,
Object.defineProperty(Array.prototype, "size", {
get: function() {
return this.length;
},
set: function(newLength) {
this.length = newLength;
}
});
var x = [1, 2, 3];
x.length // 3
x.size // 3
x.push(4);
x // [1, 2, 3, 4]
x.length // 4
x.size // 4
x.length = 2;
x // [1, 2]
x.size = 1;
x // [1]
它基本上用作长度的包装器。肉眼看来就像一个属性,但背后有一个底层函数支持。
感谢@Matthew 的评论,这个 size
属性就像一个完整的长度包装器。
关于javascript - 如何将 "size"属性添加到 Javascript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5864374/