js 原型 和 原型链

2023-12-13 18:24:12

function Person(name,age){
?? ????this.name = name
?? ??? this.age = age
}

var p = new Person('张三',11)
?? ??? ?
//创建构造函数的时候,解析器会自动为构造函数创建prototype属性,prototype属性对应的对象就是原型对象
?? ??? ?
// prototype 翻译为 原型
?? ??? ?
// prototype 用于定义构造函数创建的实例对象 所共享的属性和方法
?? ??? ?
console.log(Person.prototype === p.__proto__) //true
?? ??? ?
// ECMAScript 标准 是 Object.getPrototypeOf()


?console.log(Person.prototype === Object.getPrototypeOf(p)) ?//true
?? ??? ?
console.log(Person.hasOwnProperty('name')) //true
?? ??? ?
console.log(p.hasOwnProperty('name')) //true
?? ??? ?
Person.prototype.sex = '男'
?? ??? ?
console.log(Person.hasOwnProperty('sex')) //false
?? ??? ?
console.log(Person.prototype.hasOwnProperty('sex')) //true
?? ??? ?
console.log(p.hasOwnProperty('sex'))?? ?//false
?? ??? ?
console.log(p.__proto__.hasOwnProperty('sex'))?? ?//true

// 原型链是一种对象之间通过原型关系关联行程的链式结构
// 原型链的查找方向
// p.__proto__ ? Person.prototype ? Object.prototype? ? ? ?
?? ??? ?

文章来源:https://blog.csdn.net/weixin_44546357/article/details/134973690
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。