变量函数

时间:2016-07-27 21:54:16

标签: javascript

在Javascript中有什么办法,如何在返回函数中访问变量值?

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

2 个答案:

答案 0 :(得分:3)

因为,您还没有声明变量value,所以此变量将在全局范围内声明(作为浏览器环境中窗口对象的属性)。所以你可以按如下方式访问它。但是,这是不良做法,我的意思是在没有首先声明它的情况下使用变量。这称为implied global

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

答案 1 :(得分: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());