繁体   English   中英

如何从对象访问变量?

[英]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属性。 问题在于,在使用前尚未将其设置为任何值。

我已经修改了代码以初始化outer1 否则,当你用它乘IN_numberinner1功能,这将导致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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM