hasOwnProperty与isPrototypeOf

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hasOwnProperty与isPrototypeOf相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hasOwnProperty与isPrototypeOf</title>
</head>
<body>
    <script>
    // hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
    // isPrototypeOf:是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。
        function person(firstName,lastName) {
            this.firstName=firstName;
            this.lastName=lastName;
        }
        person.prototype.setName=function(){
            return this.firstName+,+this.lastName
        }
        var jone=new person(jone,chen);
        jone.age=30
        console.log(jone.setName());                          // ==>jone,chen
        console.log(jone.hasOwnProperty(setName))           // ==>false
        console.log(jone.hasOwnProperty(age))               // ==>true
        console.log(jone.hasOwnProperty(firstName))         // ==>true
        console.log(person.prototype.isPrototypeOf(jone));    // ==>true
        console.log(person.prototype.isPrototypeOf(jone));  // ==>false
    </script>
</body>
</html>

hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。

isPrototypeOf:是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。

以上是关于hasOwnProperty与isPrototypeOf的主要内容,如果未能解决你的问题,请参考以下文章

hasOwnProperty()与in操作符的区别

for in 与 Object.keys 与 hasOwnProperty区别

markdown JS在运算符与hasOwnProperty()方法中

js属性对象的hasOwnProperty方法

spring源码分析——BeanFactory与FactoryBean的区别

为啥使用 Object.prototype.hasOwnProperty.call(myObj, prop) 而不是 myObj.hasOwnProperty(prop)?