Stosując var
i function foo() {}
(wyrażonej jako oświadczenia, co oznacza „tylko” function foo() {}
bez przypisywanie) tworzenia lokalnych symboli. Tak więc funkcja nie jest dostępna poza konstruktorem.
Cokolwiek chcesz wystawiać (do wiadomości publicznej), należy przypisać do this
(lub self
ponieważ zdefiniowane self = this
):
self.getName = function() {
return self.name;
};
pamiętać, że już używany name
, więc dałem funkcję inną nazwą. Jeśli chcesz, aby ciąg znaków name
był lokalny i eksponował funkcję, mogą one mieć tę samą nazwę, ponieważ nie ma konfliktu. Np .:
var name = "john";
self.name = function() {
return name;
};
'self.name' jest ciągiem' „John” 'więc nie można wywołać go. Zwróć uwagę, że twoja lokalna funkcja 'name' nie jest nigdzie eksportowana. – Raynos
Zaktualizowane pytanie, ale zrobiło doskonale dobrą odpowiedź, nie ma sensu, więc zmieniło ją z powrotem. – zode64