从外部调用函数内部的JavaScript变量
我可以从外部访问变量从外部调用函数内部的JavaScript变量,javascript,Javascript,我可以从外部访问变量innerVar吗?这是最基本的 var func = function(){ this.innerVar = 'hello'; } console.log(func.innerVar); // it prints undefined 创建一个对象新建func() 设置其属性innerVarthis.innerVar='hello' 获取其属性(new func())。innerVar 这是基本的 var func = function(){ this.inn
innerVar
吗?这是最基本的
var func = function(){
this.innerVar = 'hello';
}
console.log(func.innerVar); // it prints undefined
新建func()
this.innerVar='hello'代码>
(new func())。innerVar
var func = function(){
this.innerVar = 'hello';
}
console.log(func.innerVar); // it prints undefined
新建func()
this.innerVar='hello'代码>
(new func())。innerVar
func
作为构造函数:
var func = function(){
this.innerVar = 'hello';
}
2) 在函数上使用应用方法:
console.log(new func().innerVar);
var obj = {};
func.call(obj);
console.log(obj.innerVar);
3) 使用函数上的调用方法(欢迎@dev null):
4) 在函数上使用bind
方法:
console.log(new func().innerVar);
var obj = {};
func.call(obj);
console.log(obj.innerVar);
5) 还有疯狂的东西:
var obj = {};
func.bind(obj)();
console.log(obj.innerVar);
现在您有了这些选项:
1) 使用func
作为构造函数:
var func = function(){
this.innerVar = 'hello';
}
2) 在函数上使用应用方法:
console.log(new func().innerVar);
var obj = {};
func.call(obj);
console.log(obj.innerVar);
3) 使用函数上的调用方法(欢迎@dev null):
4) 在函数上使用bind
方法:
console.log(new func().innerVar);
var obj = {};
func.call(obj);
console.log(obj.innerVar);
5) 还有疯狂的东西:
var obj = {};
func.bind(obj)();
console.log(obj.innerVar);
如果您使用new
关键字创建一个新实例,您可以这样做,但您也应该有充分的理由实际需要一个实例,否则您最好在更高的范围内定义一个常规变量。这不是一个变量。它是分配给此
的属性,在每次调用中可能会有所不同。如果要将某些数据与函数本身关联,应使用var func=function(){};func.innerVar='hello'代码>这几乎肯定是一个问题。你到底想做什么让你这么问?部分是XY问题,部分是不想学习语言。如果你用new
关键字创建一个新实例,你可以这样做,但你也应该有充分的理由实际需要一个实例,否则,您最好在更高的范围内定义一个正则变量。这不是一个变量。它是分配给此
的属性,在每次调用中可能会有所不同。如果要将某些数据与函数本身关联,应使用var func=function(){};func.innerVar='hello'代码>这几乎肯定是一个问题。你到底想做什么让你这么问?部分是XY问题,部分是不想学习语言。@dev null哈哈,是的更好:)或var obj=new func()代码>或应用(obj)代码>:还有什么建议吗汉克斯兄弟。。。真的吗helped@dev-空哈哈,是的更好:)或var obj=new func()代码>或应用(obj)代码>:还有什么建议吗汉克斯兄弟。。。这真的很有帮助