Accessing variable inside object property
所以我遇到了一个问题。 我有这个名为
1 2 3 | prep: function (variable) { /* some code */ } |
在该方法中有一个数组
我在jsFiddle上做了一个演示,在JavaScript窗口的末尾你可以看到我正在警告包含
http://jsfiddle.net/Wp7Xh/1/
JavaScript变量是功能范围的。 不可能从外部范围访问属于内部范围的变量(即"函数")。
如果您想要这种访问,则必须使外部范围的相应变量部分。
1 2 3 4 5 6 7 | var myTree = function() { var myarray = []; this.prep = function (variable) { myarray.push(variable); }; } |
在您的场景中,您有嵌套对象,它非常相似:
1 2 3 4 5 6 | var myTree = { myarray: [], prep: function (variable) { this.myarray.push(variable); } } |
唯一的区别是使用
通过对象文字语法(
当您在该对象上调用函数时,
从外部访问"内部范围"变量仍然是不可能的。 没有办法解决这个问题。
一般来说:您可以访问您构造的对象的属性。 您永远不能访问函数局部变量(嵌套函数内部除外)。