2016-07-27 211 views
0

有没有什么方法在Javascript中,如何获取变量值的返回函数?变量返回函数

function x(){ 
    return{ 
    foo:function(text){ 
     value= text; 
    } 
    } 
} 
a=x(); 
a.foo("some text"); 
+1

你不行。你可能想要返回它。另外,您需要声明该变量。 – SLaks

+0

假设它应该是'var value ...',那是一个闭包,并且不能访问封装在另一个函数中的函数的内部变量,即使它存在于一个对象中。 – adeneo

回答

3

因为,你有没有无处变量value声明,这个变量将在全球范围内声明(如在浏览器环境中的窗口对象的属性)。所以你可以像下面这样访问它。但是,这是不好的做法,我的意思是使用一个变量没有先声明它。这被称为implied global

function x(){ 
 
    return{ 
 
    foo:function(text){ 
 
     value = text; 
 
    } 
 
    } 
 
} 
 
a=x(); 
 
a.foo("some text"); 
 
document.write(value);

3

我个人的意见是使用面向对象的方法。

var SomeObject = function(){ 
    var text = ""; 
    this.setText = function(value){ 
     text = value; 
    }; 
    this.getText = function(){ 
     return text; 
    }; 
}; 

var myObject = new SomeObject(); 
myObject.setText("This is the text"); 
alert(myObject.getText());