...的hasOwnProperty这个方法是在什么情况下返回true什么情况下返回false...
发布网友
发布时间:1天前
我来回答
共3个回答
热心网友
时间:18小时前
hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
下面给出一个列子你自己理解下,至于你提的问题,你自己完全可以写例子来验证,自己写的感受会深一些
<script type="text/javascript">
var obj = {
a: 1,
fn: function(){
},
c:{
d: 5
}
};
console.log(obj.hasOwnProperty('a'));//true
console.log(obj.hasOwnProperty('fn'));//true
console.log(obj.hasOwnProperty('c'));//true
console.log(obj.c.hasOwnProperty('d'));//true
console.log(obj.hasOwnProperty('d'));//false, obj对象没有d属性
var str = new String();
console.log(str.hasOwnProperty('substring'));//false
console.log(String.prototype.hasOwnProperty('substring'));//true
</script>
热心网友
时间:18小时前
此方法返回一个bool值,如果是对象专有属性返回true,如果是对象基本属性返回false。比如 var obj = {a:1,b:2} 属性a和b都是obj对象特有的; 但是constructor、prototype、toString、valueOf、toLocaleString、propertyIsEnumerable、isPropertyOf,hasOwnProperty这些是所有对象都有的基本属性或方法。
var obj = {a:1,b:2};
//返回true,a是obj专有属性
console.log(obj.hasOwnProperty('a'));
//返回 false,每个对象(排除null)都有constructor属性,它并不是特有的属性
console.log(obj.hasOwnProperty('constructor'));
The hasOwnProperty() method returns a boolean indicating whether the object has the specified property as its own property (as opposed to inheriting it).
英文翻译参考自MDN 网页链接
热心网友
时间:18小时前
hasOwnProperty() 方法会返回一个布尔值,这个方法可以用来检测一个对象是否含有特定的自身(非继承)属性。
查看以下代码,也许能理解的更清楚。更多详情,请查看网页链接
function foo() {
this.name = 'foo'
this.sayHi = function () {
console.log('Say Hi')
}
}
foo.prototype.sayGoodBy = function () {
console.log('Say Good By')
}
let myPro = new foo()
console.log(myPro.name) // foo
console.log(myPro.hasOwnProperty('sayHi')) // true
console.log(myPro.hasOwnProperty('sayGoodBy')) // false
console.log('sayGoodBy' in myPro) // true