Object原型对象和Function原型对象

本文详细解释了JavaScript中对象和函数原型链的工作原理。通过一个具体示例,展示了为何通过new关键字创建的对象只能访问到Object原型的属性,而无法直接访问Function原型的属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    var Person = function() {};

    Object.prototype.a = 'A'

    Function.prototype.b = 'B'

    var p = new Person();    
    console.log(p.a);//A
    console.log(p.b);//undefined复制代码

问为什么?

有不少同学第一眼看上去就觉得很疑惑,p不是应该继承了Function原型里面的属性吗,为什么p.b返回是undefined呢?

其实,只要仔细想一想就很容易明白了,Person函数才是Function对象的一个实例,所以通过Person.a可以访问到Function原型里面的属性,但是new Person()返回来的是一个对象,它是Object的一个实例,是没有继承Function的,所以无法访问Function原型里面的属性。但是,由于在js里面所有对象都是Object的实例,所以,Person函数可以访问到Object原型里面的
属性,Person.b => 'b'。

转载于:https://juejin.im/post/5c7b8fb46fb9a04a082265eb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值