JS原型链

这篇博客深入探讨了JavaScript中的原型链概念,通过示例展示了`__proto__`、`prototype`属性以及它们之间的关系。文章解释了如何通过原型链访问对象属性,包括实例与构造函数之间的联系,并讨论了`Object.prototype`的特殊性及其在原型链中的位置。此外,还涉及到了`hasOwnProperty`方法的作用以及构造函数和`Function.prototype`的相关知识。

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

function Test(){}
console.log("Test.prototype ")
console.log(Test.prototype)

const test = new Test()
console.log("test.__proto__ ")
console.log(test.__proto__)

console.log("test.__proto__ === Test.prototype ")
console.log(test.__proto__ === Test.prototype)  //true

console.log("Test.prototype.__proto__ === Object.prototype ")
console.log(Test.prototype.__proto__ === Object.prototype) //true

console.log("Object.prototype ")
console.log(Object.prototype)

console.log("Object.prototype.__proto__ ")
console.log(Object.prototype.__proto__) //null

test.a = 1
Object.prototype.c = 3

console.log(test.c)

console.log("Test.__proto__ === Function.prototype ")
console.log(Test.__proto__ === Function.prototype) //true

console.log("Function.__proto__ ")
console.log(Function.__proto__);

console.log("Function.prototype ")
console.log(Function.prototype);

console.log("Function.__proto__ === Function.prototype ")
console.log(Function.__proto__ === Function.prototype)

console.log("typeof Object")
console.log(typeof Object)

console.log("Object.__proto__ === Function.prototype")
console.log(Object.__proto__ === Function.prototype)


console.log("Object.__proto__ === Function.__proto__")
console.log(Object.__proto__ === Function.__proto__)

console.log(test.hasOwnProperty('c')) //判断属性是否在对象本身身上,而不是在原型对象上
console.log('c' in test) //只要属性在对象或原型对象上都是true

console.log(test.constructor === Test)

function Test1(){
	this.a = 111
}

test.constructor = Test1
console.log(test)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值