W kodzie:
> function Person(name) {
> this.name = name;
> }
Po wywołaniu jako konstruktor powyższe utworzy nazwaną właściwość n wystąpienie o nazwie nazwa i przypisz mu wartość parametru o nazwie.
> Person.prototype.greet = function(otherName){
> return "Hi" + otherName + ", my name is " + name;
> }
Tutaj nazwą identyfikator służy jako zmienna, ale identyfikator szukasz to nazwana właściwością instancji, więc trzeba do niego dostęp w jako takim. Zazwyczaj funkcja ta będzie wywoływana jako metoda instancji, więc w ramach funkcji będzie odwołanie do instancji.Więc chcesz:
return "Hi" + otherName + ", my name is " + this.name;
więc teraz, kiedy można zrobić (należy pamiętać, że zmienne rozpoczynające się od litery są zwyczajowo zarezerwowane dla construtors):
> var john = new Person("John");
a następnie:
john.greet('Fred');
ponieważ pozdrawiam nazywany jest jako metoda Jana, zwróci:
Hi Fred, my name is John
Obiekt ma nic wspólnego z zakresem. Fraza "Wrong scope" byłaby lepsza jako "metoda błędnego dostępu". – RobG
wystarczająco fair. edytowane. –
dzięki za pomoc – flylib