hasOwnProperty()到底在哪?


hasOwnProperty是检测一个属性是否是存在于实例当中的一个方法。
属性在对象实例中就返回true,否则返回false

function Person() {}
        Person.prototype.name = "xf";

        var person = new Person();
        person.name = "xx";

        console.log(person.hasOwnProperty("name"));//true

在person对象中有name属性,返回ture

提问一:那hasOwnProperty()是否在对象实例中呢?

我们来验证一下。

function Person() {}
        Person.prototype.name = "xf";

        var person = new Person();
        person.name = "xx";

        console.log(person.hasOwnProperty("hasOwnProperty")); //false

person实例中并没有hasOwnProperty()方法

提问二:那hasOwnProperty()是在实例所指的原型对象中吗?

继续验证:

function Person() {}
        Person.prototype.name = "xf";

        var person = new Person();
        person.name = "xx";

        console.log(person.__proto__.hasOwnProperty("hasOwnProperty")); //false

也没有在原型对象中。

提问三:那hasOwnProperty()是在实例所指的原型对象的原型对象中吗?

验证:

function Person() {}
        Person.prototype.name = "xf";

        var person = new Person();
        person.name = "xx";

        console.log(person.__proto__.__proto__.hasOwnProperty("hasOwnProperty")); //true

没错,是在实例所指的原型对象的原型对象中

提问三:那实例所指的原型对象的原型对象是谁?

function Person() {}
        Person.prototype.name = "xf";

        var person = new Person();
        person.name = "xx";

        console.log(person.__proto__.__proto__.constructor); //Object

是Object,Object是所有对象的祖先。

扩展提问:那Object对象的原型是谁?

function Person() {}
        Person.prototype.name = "xf";

        var person = new Person();
        person.name = "xx";

        console.log(person.__proto__.__proto__.__proto__); //null

是null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值