[英]How to access external function variables from inner functions in JavaScript?
我刚刚掌握JS基础知识的绳索,请多多包涵。
以下是代码:
function FuncWithMathOps(x){
var x=x;
console.log("Value of x : "+x);
var SUM = function(x){
var x=x;
console.log("Value of x : "+x);
console.log("Value of this.x : "+this.x);
}
var MUL = function(x){
var x=x;
console.log("Value of x : "+x);
console.log("Value of this.x : "+this.x);
}
return {
SUM:SUM,
MUL:MUL
};
}
外部函数和内部函数的变量名称都相同,即x
和y
。 如何从内部函数SUM
和MUL
访问外部函数FuncWithMathOps
变量?
您可以创建一个变量self ,该变量self保留this
的引用,以后可以使用它。
function FuncWithMathOps(x) { this.x = x; var self = this; console.log("Value of x : " + x); var SUM = function(x) { console.log("Value of x : " + x); console.log("Value of this.x : " + self.x); return x + self.x; } return { SUM: SUM }; } var fn = new FuncWithMathOps(10); console.log(fn.SUM(5))
您也可以使用.bind()
function FuncWithMathOps(x) { this.x = x; console.log("Value of x : " + x); var SUM = function(x) { console.log("Value of x : " + x); console.log("Value of this.x : " + this.x); return x + this.x; } return { SUM: SUM.bind(this) }; } var fn = new FuncWithMathOps(10); console.log(fn.SUM(5))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.