js 原型 和 原型链

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       
        

你可能感兴趣的:(前端,javascript,原型模式,开发语言)