Почему я получаю только результаты моего последнего вызова ‘hasOwnProperty’?

#javascript #methods #console #hasownproperty

#javascript #методы #консоль #hasownproperty

Вопрос:

Мне просто интересно, почему, когда я вызываю метод ‘hasOwnProperty’ несколько раз, мне возвращается только одно логическое значение в консоли? Всегда возвращается последний вызов. Остальная часть моего кода полностью функциональна, и если я переключаю порядок, который я вызываю, чтобы проверить, где находятся 3 свойства, он возвращает тот вызов, который был последним.

 spot.hasOwnProperty("sit");
spot.hasOwnProperty("name");
spot.hasOwnProperty("species"); 
 

Приветствия, ребята.

Ответ №1:

Все они возвращаются, но консоль просто отображает вывод последней команды; Вы можете поместить их в массив, чтобы увидеть все ответы сразу

 [spot.hasOwnProperty('sit'), spot.hasOwnProperty('name')]
 

Ответ №2:

Из-за отсутствия контекста я предполагаю, что это сводится только к логической логике. Если вы проверяете свои действия по одному, вы получите правильное значение.

 var spot = {};
spot.sit = true;
//spot.name = "Spot";
spot.species = "dog";

console.log(spot.hasOwnProperty('sit'));
console.log(spot.hasOwnProperty('name'));
console.log(spot.hasOwnProperty('species')); 

Есть 2 варианта, если вы проверяете все значения одновременно: логическое И ( amp;amp; ) или логическое ИЛИ ( || ) .

     var spot = {};
    //spot.sit = true;
    spot.name = "Spot";
    spot.species = "dog";
    
    // Boolean OR
    console.log(spot.hasOwnProperty('sit') || spot.hasOwnProperty('name') || spot.hasOwnProperty('species'));
    
    // Boolean AND
    console.log(spot.hasOwnProperty('sit') amp;amp; spot.hasOwnProperty('name') amp;amp; spot.hasOwnProperty('species'));