gpt4 book ai didi

javascript - 在 JS 中使用这个还是新的?

转载 作者:数据小太阳 更新时间:2023-10-29 06:15:40 24 4
gpt4 key购买 nike

我有 3 个代码:

var control = new Control();

function Control() {

this.doSomethingElse = function() {...}
this.doSomething = function () {
control.doSomethingElse();
}

}

或者

var control = new Control();

function Control() {
var self = this;

this.doSomethingElse = function() {...}
this.doSomething = function () {
self.doSomethingElse();
}
}

或者

var control = Control();

function Control() {
var self = this;

this.doSomethingElse = function() {...}
this.doSomething = function () {
self.doSomethingElse();
}

return self;
}

重要:函数是一个 Controller ,只声明一次。然后我在我的代码中到处使用“控制”......

我想知道 control.doSomethingElse() 是否很慢?

最后,在这些示例中,正确的做法和/或最快的代码是什么?

谢谢!

最佳答案

第一个是错误的——一个对象不应该在内部使用它在外部已知的变量名。其他代码可能会更改该变量以指向其他内容,从而破坏此代码。

第三个也是错误的 - 当在没有 new 的情况下调用 Control() 时,对 this.foo 的赋值最终会附加到全局对象(除了在严格模式下,在裸函数调用中没有隐式 this,因此对 this.doSomethingElse 的赋值尝试附加到 undefined,导致运行时错误)。

这只剩下第二个是合适的,但最终这是一个正确性问题,而不是性能问题。

关于javascript - 在 JS 中使用这个还是新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34375003/

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