访问对象属性中的变量
Accessing variable inside object property
所以我遇到了一个问题。我有一个对象叫做 myTree
.并且该对象具有属性。其中一个属性包含如下方法:
prep: function (variable) {
/* some code */
}
在该方法中,有一个数组myarray
我想知道是否可以访问该数组的内容,如果是,我将如何做到这一点。
我已经在jsFiddle上做了一个演示,在JavaScript窗口的末尾,你可以看到我正在提醒包含myarray
的对象prep
。
http://jsfiddle.net/Wp7Xh/1/
JavaScript 变量是函数范围的。无法从外部作用域访问属于内部作用域(即"函数")的变量。
如果需要这种访问,则必须使相应的变量成为外部作用域的一部分。
var myTree = function() {
var myarray = [];
this.prep = function (variable) {
myarray.push(variable);
};
}
在你的方案中,如果你有嵌套对象,它非常相似:
var myTree = {
myarray: [],
prep: function (variable) {
this.myarray.push(variable);
}
}
唯一的区别是使用 this
关键字。
当你通过对象文字语法(obj = {prop: value}
)而不是通过构造函数(function Obj(value) { this.prop = value; }; obj = new Obj(value);
)定义对象时,默认情况下所有定义的属性都将是"公共的"。
当您在该对象上调用函数时,this
将指向相应的对象实例。
从外部访问"内部作用域"变量仍然是不可能的。这是没有办法的。
一般来说:您可以访问所构造对象的属性。您永远无法访问函数局部变量(嵌套函数内部除外)。
相关文章:
- 如何检查名为id的变量属性
- 变量属性jQuery
- JavaScript 变量属性
- 使用变量属性名称构造 JS 对象的简写方法
- 具有变量属性的Javascript对象:可能吗
- 节点.js全局变量属性被清除
- 玉中的变量属性名称
- Javascript 使用变量属性名称来分配值
- 创建具有变量属性的对象
- Javascript,获取全局变量属性
- 如何在 d3 中获取变量属性
- 使用变量属性名称建立和数组
- JS框架:KineticJS.如何设置变量属性
- TypeScript:类/方法中变量/属性的声明
- 当你在HTML5视频控制器上点击播放时,哪些变量/属性会发生变化
- 从html输入id=“”传递到javascript变量属性;属性”;
- 当传递参数给jquery插件时,如何为javascript对象指定一个变量属性
- RaphaelJS:如果从页面散列中找到变量属性,则更改其属性
- 从JS函数的原型中获取预计算变量/属性的标准方法
- 变量属性=“;测试”;vs Object.defineProperty(变量,“Property”)