является ли внутренняя функция свойством внешней функции? - PullRequest
0 голосов
/ 14 октября 2011
Function.prototype.test = function(){return "F"}
function hh(){var x="xx";function test(){return "f"}}

print(hh.test());

результат - "f", означает ли это, что внутренняя функция является свойством внешней функции?

== обновил мой код, но результат по-прежнему "f".! _!

Ответы [ 2 ]

4 голосов
/ 14 октября 2011

Результатом должна быть ошибка - и, по крайней мере, в Chrome это так.

test внутри hh - локальная функция, и она не должна быть доступна извне.

Что касается Function.test, то это свойство Function - не является членом всех функций.Если вы действительно хотите сделать что-то членом всех функций, его нужно добавить в Function.prototype

1 голос
/ 14 октября 2011

Вам действительно удалось получить результат из этого кода?Вы пытаетесь напечатать результат.

hh.test будет неопределенным, так как test определяется в частном порядке для hh.Определение теста для прототипа Function.prototype.test вернет 'F' из hh.test в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...