Ich habe 3 Codes bekam:Verwenden Sie dies oder neu in JS?
var control = new Control();
function Control() {
this.doSomethingElse = function() {...}
this.doSomething = function() {
control.doSomethingElse();
}
}
Oder
var control = new Control();
function Control() {
var self = this;
this.doSomethingElse = function() {...}
this.doSomething = function() {
self.doSomethingElse();
}
}
Oder
var control = Control();
function Control() {
var self = this;
this.doSomethingElse = function() {...}
this.doSomething = function() {
self.doSomethingElse();
}
return self;
}
Wichtig: Die Funktion ist ein Controller, und nur einmal erklärt. Dann verwende ich "Kontrolle" überall in meinem Code ...
Ich fragte mich, ob die control.doSomethingElse() langsam war?
Am Ende, was ist das Richtige zu tun und/oder der schnellste Code in diesem Beispiel?
Danke!
# 1 ist falsch - ein Objekt sollte niemals intern den Namen verwenden, durch den es außerhalb bekannt ist. Dafür ist "this" (oder "self") da. – Alnitak
@Alnitak: Er verwendet ein Singleton-Objekt.Scheint nicht, als ob er überhaupt einen Konstruktor braucht. –
@squint true, aber in diesem Fall sollte er 'this' nicht in den Zuweisungen verwenden - nur' function Control() {return {doSomethingElse: ..., doSomething: ...}} ' – Alnitak