在创建对象的函数中引用var
Reference var in function that created object
这是我想要使用的测试代码。
function test() {
var val = 'var ref',
tobj = new testObj(this);
tobj.alertParentVal(); //alert 'var ref'
val = 'new val';
tobj.alertParentVal(); //alert 'new val'
}
function testObj(o) {
this.alertParentVal = function() {
alert(o.val);
}
}
如果不将"val"的值传递给新的testObj,我如何引用"val"。如果这不可能。有没有一种方法可以保留对test()函数变量的引用,这样如果函数中的值发生变化,我就可以在对象中使用新值。
除了在全局对象上,变量不能作为属性访问。
您需要给对象一个引用变量的函数,以便从变量范围之外读取它。。。
function test() {
var val = 'var ref',
tobj = new testObj(this);
this.getVal = function() { return val; }; // accessor for the val variable
tobj.alertParentVal(); //alert 'var ref'
val = 'new val';
tobj.alertParentVal(); //alert 'new val'
}
function testObj(o) {
this.alertParentVal = function() {
alert(o.getVal()); // get the variable
}
}
演示:http://jsfiddle.net/a2HfG/1/
作为替代方案,由于您已经将其传递给testObj,因此您也可以将val指定为this的属性。你可以这样做:
function test() {
this.val = 'var ref';
var tobj = new testObj(this);
tobj.alertParentVal(); //alert 'var ref'
this.val = 'new val';
tobj.alertParentVal(); //alert 'new val'
}
function testObj(o) {
this.alertParentVal = function() {
alert(o.val); // get the variable
}
}
相关文章:
- 引用对象中的通用值
- 如何在JavaScript中将字符串转换为函数引用
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 控制台返回var不是't定义,但它是
- 在动态创建的元素上获取对特定选择器的引用
- IIFE中的函数引用不可用
- 从var向代码隐藏函数传递值
- 如何通过引用var Using DataTables来进行分页或排序
- 如何在创建键时引用来自同一对象的键
- jQuery语法添加了var
- 如何将具有文本类型值的var放入jQuery函数中
- Datatables:通过DOM数据源中的名称引用列
- 如何使用javascript var引用Mongo DB集合's字段
- 在创建对象的函数中引用var
- 为什么在没有 var 关键字的情况下分配给变量时会出现引用错误
- 在控制器中声明的变量,带有“var”,但在控制器中引用为范围
- 当我们尝试使用直接引用调用文档对象方法时,例如:var kk = document.getElementById;kk(
- 从一个模型到另一个模型的引用var在Backbone中返回默认值
- Javascript:将函数参数与字符串组合以引用var
- 从这个或自引用javascript获取var名