Подтвердить что ты не робот

Angular.isDefined() vs obj.hasOwnProperty()

У меня есть объект, который может иметь статус или не иметь его. При использовании рамки angular.js, которая была бы более подходящей. Каковы преимущества и недостатки обоих.

var checkStatus = function(item){
    if(angular.isDefined(item.status){
        //do something
    }
    //VS.
    if(item.hasOwnProperty('status')){
       //do something
    }
}
checkStatus(item);
4b9b3361

Ответ 1

angular.isDefined проверить только, если значение undefined:

function isDefined(value){return typeof value !== 'undefined';}

Object.hasOwnProperty проверьте, является ли это значение прямым, а не унаследованным.

Например:

var test = {};
angular.isDefined(test.toString); // true
test.hasOwnProperty('toString'); // false

информация: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty