![](/img/trans.png)
[英]How do I set a variable to be a object's key so I can access an object dynamically in javascript?
[英]How can I access variable from object?
我不知道如何访问pubOuter,有人可以解决这个问题吗? 它总是返回undefined ,因为我找不到从inner2()函数传递外部方法。 或者我缺少明显的东西。 非常感谢。
Java脚本
var myObject = (function(){
var outer;
function inner1(IN_number){
outer = IN_number*2;
}
function inner2(){
inner1(10);
return outer;
}
return {
pubFnInner1: inner1,
pubFnInner2: inner2,
pubOuter: outer
};
})();
$("#click").on("click", function(){
console.log("outer" + myObject.pubOuter);
});
的HTML
<button id="click">Click</button>
您正在成功访问putOuter
属性。 问题在于,在使用前尚未将其设置为任何值。
我已经修改了代码以初始化outer
至1
。 否则,当你用它乘IN_number
在inner1
功能,这将导致NaN
。
var myObject = (function(){
var outer = 1;
function inner1(IN_number){
outer = IN_number*2;
}
function inner2(){
inner1(10);
return outer;
}
return {
pubFnInner1: inner1,
pubFnInner2: inner2,
pubOuter: outer
};
})();
$("#click").on("click", function(){
console.log("outer" + myObject.pubOuter);
myObject.pubFnInner1(10);
console.log("outer" + myObject.pubOuter);
// or combine both steps by using your pubFnInner2 method.
console.log("outer" + myObject.pubFnInner2());
});
pubOuter
是未定义的,因为您将其分配给outer
,而outer
是未定义的,因为您从未运行inner1
,因此需要执行以下操作:
var myObject = (function(){
var outer;
function inner1(IN_number){
outer = IN_number*2;
}
function inner2(){
inner1(10);
return outer;
}
return {
pubFnInner1: inner1(),
pubFnInner2: inner2(),
pubOuter: outer
};
})();
$("#click").on("click", function(){
console.log("outer" + myObject.pubOuter);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.