var func = function(){
this.innerVar = 'hello';
}
console.log(func.innerVar); // it prints undefined
我可以从外部访问变量innerVar
吗?
答案 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);
new func()
。this.innerVar = 'hello';
。(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'