JS原型和原型链

### 构造函数
function Person(){

}
### 通过new关键字创建一个对象实例

var p1 = new Person();

### 每一个函数都有一个prototype属性



### 每一个js对象(null除外)在创建的时候都有一个对象与之关联,这个就是我们所说的原型,每个对象都会从原型中继承属性

function Person(){

}
var p1 = new Person();
Person.prototype.name = "star";
console.log(p1.name);//star

### 每一个js对象(null除外)都有一个__proto__属性,指向关联对象的原型prototype
console.log(p1.__proto__ === Person.prototype);//true

### constructor  每个对象的原型prototype都有一个constructor属性指向关联的构造函数,实例原型指向构造函数

console.log(Person === Person.prototype.constructor);//true
console.log(p1.__proto__.constructor === Person);///true


//创建一个构造函数Person
function Person(){
}
var p1 = new Person();//创建一个实例对象p1
Person.prototype.name = "chen";
p1.name = "star";
console.log(p1.name);//star
delete p1.name;
console.log(p1.name);//chen
console.log(p1.__proto__ === Person.prototype);//  true 实例的__proto__等于关联对象的prototype
console.log(p1.__proto__.constructor);//[function Person]



var p2 = new Object();
Object.name = "xing";
console.log(Object === Object.prototype.constructor);//每一个原型都有一个constructor属性指向关联的构造函数,实例原型指向构造函数
console.log(Object.prototype.__proto__);

 

posted @ 2020-12-17 17:20  keep_one_more_time  阅读(100)  评论(0编辑  收藏  举报