gpt4 book ai didi

javascript - 我什么时候应该使用 "that"的 Douglas Crockfords 实现?

转载 作者:行者123 更新时间:2023-12-02 15:45:59 25 4
gpt4 key购买 nike

在 Douglas Crockford 的文章中,Private Members in Javascript ,他使用变量“that”来引用“this”,以便在类的特权方法中使用。我一直在我的代码中使用“this.publicMember”,它似乎工作正常。我认为您真正需要使用“that”的唯一一次是当您调用“this”明显不同的函数时,即从 setTimeout 调用它。我什么时候应该使用/不使用“that”?

function Container(param) {
function dec() {
if (secret > 0) {
secret -= 1;
return true;
} else {
return false;
}
}

this.member = param;
var secret = 3;
var that = this;

this.service = function () {
return dec() ? that.member : null;
};
}

对比:

    this.service = function () {
return dec() ? this.member : null;
};

最佳答案

他在文章中写道:

By convention, we make a private that variable. This is used to make the object available to the private methods.

然后他只是在任何地方使用that,以避免未绑定(bind)函数的问题(例如您提到的setTimeout),并且还可以轻松地在之间切换“方法”私有(private)和特权。由于该方法无论如何都已经是特定于实例的(不是从原型(prototype)等继承的),因此使其绑定(bind)并访问另一个闭包变量确实没有什么坏处。

关于javascript - 我什么时候应该使用 "that"的 Douglas Crockfords 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32201439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com