从外部调用函数内的JavaScript变量

时间:2016-01-01 18:11:58

标签: javascript

var func = function(){
   this.innerVar = 'hello';
}

console.log(func.innerVar); // it prints undefined

我可以从外部访问变量innerVar吗?

4 个答案:

答案 0 :(得分:2)

var func = function(){
   this.innerVar = 'hello';
}

现在你有了这些选择:

1)使用func作为构造函数:

console.log(new func().innerVar);

2)在函数上使用apply方法:

var obj = {};
func.apply(obj);
console.log(obj.innerVar);

3)在函数上使用call方法(欢呼@ dev-null):

var obj = {};
func.call(obj);
console.log(obj.innerVar);

4)在函数上使用bind方法:

var obj = {};
func.bind(obj)();
console.log(obj.innerVar);

5)疯狂的东西:

console.log(func.apply(func) || func.innerVar);

答案 1 :(得分:1)

那是基本的

var func = function(){
   this.innerVar = 'hello';
}

console.log((new func()).innerVar);
  1. 创建对象new func()
  2. 设置其属性innerVar this.innerVar = 'hello';
  3. 获取其属性(new func()).innerVar

答案 2 :(得分:0)

var Func = function(){
   this.innerVar = 'hello';
}

var func = new Func; // Creates an instance of your Func class
console.log(func.innerVar);

答案 3 :(得分:0)

var func = function() {
  func.innerVar = 'hello';
};

func.innerVar; // undefined
func();
func.innerVar; // ‘hello'