JS-原型对象的理解

来源:互联网 发布:淘宝虚拟商品怎么上架 编辑:程序博客网 时间:2024/05/21 17:18

1.在JS中,每个函数都有一个prototype属性,该属性指向一个对象(即原型对象),该对象用于包含该函数(即JS中的类)所有实例可以共享的属性和方法。

2.只要新创建了一个函数,就会根据某种规则给该函数创建一个prototype属性,该属性指向函数的原型对象,在默认情况下,所有原型对象都会自动获得一个constructor属性,该属性指向prototype属性所在函数的指针。


3.function Animal(category){
this.category=category;
this.say=function(){
console.log("  my category is "+this.category);
};


}
Animal.prototype={

//constructor:Animal,
name:"Animal",
sex:"M",
food:"",
eat:function(){
console.log("I like eat "+this.food);
},
say:function(){
console.log("hi,I am in prototype"+this.name);
}

};
console.log((Animal.prototype.constructor==Animal));//false

注意当将一个对象字面量赋值给一个类的prototype时,相当于重写了原型对象,此时的constructor就不会指向该构造函数了,为了修复这个bug,添加一行上面所示的红色代码


0 0
原创粉丝点击