我试图了解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。)做我想做的事情的约定是什么?