Czytałem wcześniej, jak "Utworzyć bibliotekę JavaScript" i natknąłem się na te fragmenty kodu, które sprawiają, że chcę zgrać moje włosy.W jaki sposób działają te fragmenty kodu?
Oto kod, który dostał mój mózg w węzłach:
if (window === this) {
return new _(id);
}
_ (id) jest tylko nazwa funkcji, w której zawarty jest ten kod. Oto reszta kodu, jeśli chcesz sam się nad tym zastanowić.
function _(id) {
// About object is returned if there is no 'id' parameter
var about = {
Version: 0.5,
Author: "Michael Jasper",
Created: "Fall 2010",
Updated: "23 November 2011"
};
if (id) {
// Avoid clobbering the window scope:
// return a new _ object if we're in the wrong scope
if (window === this) {
return new _(id);
}
// We're in the correct object scope:
// Init our element object and return the object
this.e = document.getElementById(id);
return this;
} else {
// No 'id' parameter was given, return the 'about' object
return about;
}
};
Nigdy wcześniej nie widziałem "zwróć nową funkcję", ale chciałbym zrozumieć, jak to działa.
Drugi kawałek kodu:
_.prototype = {
hide: function() {
this.e.style.display = 'none';
return this;
}
show: function() {
this.e.style.display = 'inherit';
return this;
}
};
wiem, że ten kod dodaje nowe metody do obiektu _ ale dlaczego oni to „powrót”? Próbowałem tego bez niego i działało dobrze.
Ostatnią rzeczą, link do artykułu jest http://www.mikedoesweb.com/2012/creating-your-own-javascript-library/
Return to? Więc może po tym możesz dodać coś więcej? Po prostu zgadywanie – Anonymous
Funkcja 'return this' włącza łańcuch, tak jak w' magic(). Do(). Stuff() '. –
tak, łańcuchowanie jest tym, co miałem na myśli ,, to jak jquery, ale jquery jest nieco bardziej skomplikowany i zwraca wiele obiektów. – Anonymous