...的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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com