Person.prototype.name = "abc";
function Person(){
//var this = {
// __proto__: Person.prototype
//}
}
var person = new Person();
当你访问这个对象的属性的时候,对象身上如果没有属性的话,他就会通过_proto_指向的索引,找Person.prototype身上有没有你想要找的属性。把原型和自己连接在一起。每个对象都有_proto_属性指向他的原型。
Person.prototype.name = "abc";
function Person(){
//var this = {
// __proto__ : Person.prototype
//}
}
var obj = {
name : "sunny"
}
var person = new Person();
Person的构造函数构造出的对象的原型未必非得是Person.prototype,它是可以被经过修改的。
Person.prototype.name = "sunny";
function Person(){
}
var person = new Person();
Person.prototype.name = "cherry";
person.name她身上没有,没有得找__proto__,他的__proto__是Person.prototype。
Person.prototype.name = "sunny";
function Person(){
}
Person.prototype.name = "cherry";
var person = new Person();
Person.prototype.name = "sunny";
function Person(){
}
var person = new Person();
Person.prototype = {
name : "cherry"
}
这种写法和.的写法可不一样,.的写法是在原有的基础上把那个属性值改了,这种写法是把原型给改了,换了个新对象。
Person.prototype.name = "sunny";
function Person(){
}
Person.prototype = {
name : "cherry"
}
var person = new Person();
放上放下是绝对不一样的,一定要看清new的位置。