因此以下内容将不起作用:
var Foo = {
array1 : ['apples', 'oranges', 'grapes'],
arrayLength : array1.length // error
}
有什么方法可以访问对象内 Foo.array1
的长度吗?
最佳答案
你需要这样做:
var Foo = {};
Foo['array1'] = ['apples', 'oranges', 'grapes'];
Foo['arrayLength'] = Foo['array1'].length;
或者像这样(恕我直言,更干净):
var Foo = function() {
var a = ['apples', 'oranges', 'grapes'];
return {'array1': a, 'arrayLength':a.length};
}();
另一种选择:
function Foo(array) {
this.array1 = array;
this.arrayLength = array.length;
//other stuff...
}
var f = new Foo(['apples', 'oranges', 'grapes']);
但实际上,这对我来说没有多大意义,你已经存储了数组,为什么还需要缓存 length
属性?`
关于Javascript:访问自己的对象的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7673798/