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__);
大漠流星