原型
定义:原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。原型也是对象。
//Person.prototype--原型
//Person.prototype={} 是祖先
Person.prototype.name = 'he';
function Person(){
//this.name = 'ji';
}
var person = new Person();
var person1 = new Person();
共用属性
此时person,person1都能继承Person的属性和函数。
当Person里面有与原型里相同属性的话,取用Person里面的.
//Person.prototype--原型
//Person.prototype={} 是祖先
Person.prototype.lastname = 'he';
function Person(){
this.name ='sds';
}
var person = new Person();
var person1 = new Person();
person.lastname = 'sdsd';
修改对象属性时候,并没有修改它的原型。如若对象没有这个属性的话,则会添加进去而不会是undefined
原型也可以这样写。
//Person.prototype--原型
//Person.prototype={} 是祖先
Person.prototype={
height:1400,
lang:4900
}
function Person(){
}
var person = new Person();
var person1 = new Person();
对象名字.constructor可以找到出生地。
proto
每个对象都有个proto,指向自己的原型。
对象名字._ _ proto_ _ (两个下划线连在一起)
易错:
Person.prototype={
name:"a",
sayName : function(){
console.log(this.name);
}
}
function Person(){
this.name = "b";
}
var person = new Person();
结果为b。
sayName里面的this指向是,谁调用这个方法,this指向就是谁。
object.prototype.toString.call( ):可以查看括号中是object还是number等等