ale*_*no2 5 javascript this declare
我有3个代码:
var control = new Control();
function Control() {
this.doSomethingElse = function() {...}
this.doSomething = function () {
control.doSomethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
要么
var control = new Control();
function Control() {
var self = this;
this.doSomethingElse = function() {...}
this.doSomething = function () {
self.doSomethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
要么
var control = Control();
function Control() {
var self = this;
this.doSomethingElse = function() {...}
this.doSomething = function () {
self.doSomethingElse();
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
重要提示:该函数是一个控制器,只声明一次.然后我在我的代码中到处使用"控制"...
我想知道control.doSomethingElse()是否很慢?
最后,在这些例子中做什么和/或最快的代码是什么?
谢谢 !
第一个是错误的——对象不应该在内部使用外部已知的变量名。其他代码可能会更改该变量以指向其他内容,从而破坏此代码。
第三个也是错误的 - 当调用时Control()没有new对 inside 进行赋值时this.foo,最终会附加到全局对象(严格模式除外,在严格模式下,this裸函数调用没有隐式,因此对 的赋值this.doSomethingElse尝试附加到undefined,导致运行时错误)。
只剩下第二个是合适的,但最终这是一个正确性问题,而不是性能问题。
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |