Czytam kod źródłowy KnockoutJS."new" Przed anonimowym wywołaniem funkcji Zwrócenie obiektu
wpadłem na następujący wiersz, który nie jestem pewien, czy rozumiem ...
ko.utils = new (function() {
Generalnie struktura wydaje się wzdłuż linii:
ko.utils = new (function() {
// some variables declared with var
return {
export:value,
export:value
};
})();
I don” t zrozumieć ten konstrukt, dlaczego jest potrzebny new
? Co to robi? Do czego jest przydatny?
(myślałem, że jeśli funkcja jest wywoływana z new
przed jego nazwą jest ona wywoływana jako konstruktor, a jeśli to zwraca obiekt jest identyczny z invokation bez new
).
UPDATE: Poprosiłem zespół KnockoutJS na githubie i to jest to, co otrzymałem:
Domyślam się, że Steve po prostu nie wiedział, że nie był potrzebny. Patrząc wstecz na jego pierwotne zatwierdzenie, widzę wiele niepotrzebnych wiadomości, które zostały usunięte.
O ile mogę powiedzieć, Polecenie 'new' nie wpływa w tym przypadku –
related: [Czy to dobrze myśleć o wyrażeniu funkcji JavaScript, który używa„nowych”słowa kluczowego jako„static”] (http://stackoverflow.com/questions/10406552/is-right-to-think-of-a-javascript-function-expression- that-uses- the-new-key) – Bergi
Po prostu trafiłam na oba one ... – Bergi