function User(name, age){
this.name = name;
this.age = age;
}
User.prototype.greet = function(){
console.log('hi,我是' + this.name + '我现在' + this.age + '岁');
}
var bb = new User('BB',22);
User.prototype.greet = function(){
console.log('想不到吧,我又回来啦');
this.name = name;
this.age = age;
}
User.prototype.greet = function(){
console.log('hi,我是' + this.name + '我现在' + this.age + '岁');
}
var bb = new User('BB',22);
//这里bb已经实例化,
User.prototype.greet = function(){
console.log('想不到吧,我又回来啦');
}
var dd = new User('DD',20);
//这里把User.prototype.greet重新function了一下,而bb已经实例化,按照从上往下的代码执行顺序来看,这里的上面的bb应该会执行 console.log('hi,我是' + this.name + '我现在' + this.age + '岁'); 这行代码,而下面的dd应该执行的是 console.log('想不到吧,我又回来啦'); 这行代码,但是执行之后才发现,两个结果都是 console.log('想不到吧,我又回来啦'); ,所以prototype是非常强大的,就像动态的一样,最重要的是实例化后的 bb和dd是全等的,说明用prototype 创建的function都是在等待被调用中,而不是直接赋值给赋值对象的,这样可以有效的减少内存占用的问题。