想象一下有一个对象: foo = {"bar": 1}
使用hasOwnProperty
点语法来检查对象bar
内的属性是否有任何好处foo
:
if (foo.hasOwnProperty('bar') { // do something }
VS
if (foo.bar) { // do something }
也:
将hapen什么,如果foo["bar"]
是undefined
?
怎么样foo
undefined
?
Alexander T... 11
看看这个例子,
Object.prototype.baz = 100;
var foo = {"bar": 1}
// will be false because in foo object there is no baz property
// hasOwnProperty checks that the object has the specified property
// and does not check that property in the prototype chain
if (foo.hasOwnProperty('baz')) {
console.log('foo.hasOwnProperty("baz")');
}
// will be true because baz property will be found
// in parent object through prototype chain
if (foo.baz) {
console.log('foo.baz');
}
看看这个例子,
Object.prototype.baz = 100;
var foo = {"bar": 1}
// will be false because in foo object there is no baz property
// hasOwnProperty checks that the object has the specified property
// and does not check that property in the prototype chain
if (foo.hasOwnProperty('baz')) {
console.log('foo.hasOwnProperty("baz")');
}
// will be true because baz property will be found
// in parent object through prototype chain
if (foo.baz) {
console.log('foo.baz');
}