我试图了解this
关键字的工作原理。
这篇文章this 关键字声明
“在 JavaScript 中,this 总是指我们正在执行的函数的“所有者”,或者更确切地说,指的是函数作为方法的对象。”
function someClosure() {
var myVal0, myVal1, myVal2;
init = function (myVal0, myVal1, myVal2) {
myVal0 = myVal0;
this.myVal1 = myVal1;
this.myVal2 = myVal2;
};
getMyVal0 = function() { return myVal0 };
getMyVal1 = function() { return myVal1 }
getMyVal2 = function() { return this.myVal2 }
};
我猜getMyVal0
是因为undefined
命名init()
冲突(分配不明确)而被调用。
但是(在调用之后init()
)为什么getMyVal1
返回undefined
?引用myVal1
不应含糊不清。Javascript 是否需要明确使用this
?getMyVal2
返回预期值,但我很惊讶我需要明确的this
.
请澄清这种行为。
最终,我试图在初始化成员变量时为函数参数建立一个命名约定。按照行业惯例,IRR 是 IRR,它似乎this
应该允许我避免为变量使用两个名称(而不总是用 . 引用成员变量this
。)做我想做的事情的约定是什么?