javascript ссылка на неопределенное свойство - PullRequest
5 голосов
/ 24 сентября 2010

Используя Firefox, работая над расширением Firefox, я постоянно получаю предупреждение javascript:

reference to undefined property mySidebar.context.netProgress

Я пробовал несколько способов проверить значение:

if (mySidebar.context.netProgress === undefined) {

И

if (typeof mySidebar.context.netProgress == "undefined") {

И

if (!mySidebar.context.netProgress) {

И

if (mySidebar.context.netProgress == undefined) {

Однако консоль ошибок в Firefox продолжает выдавать мне предупреждения в той же строке каждый раз, рассматриваемая строка - это строка, в которой я разместил код сверху. Фактическая проверка значения вызывает предупреждение.

Я также поместил предупреждение, чтобы проверить значение mySidebar.context, который всегда является объектом, поэтому предупреждение получено не от родителя.

Есть идеи?

Ответы [ 2 ]

6 голосов
/ 24 сентября 2010

Как сказал Свингли, вы можете использовать Object.prototype.hasOwnProperty () , чтобы проверить наличие прямого свойства объекта. Однако это не будет работать для свойств, унаследованных от цепочки прототипов. Для обеих ситуаций, унаследованных и прямых, вы можете использовать оператор in :

if ("netProgress" in mySidebar.context) {
3 голосов
/ 24 сентября 2010

Попробуйте объект. hasOwnProperty ()

if (mySidebar.context.hasOwnProperty("netProgress")) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...