第二章(2)面向对象编程

2.1 封装------创建—个类

var Book=function(id,bookname,price){

this.id = id;

this.bookname= bookname;

this.price = price;

}

Book.prototype.display = function(){

return this.id+this.bookname+this.price

};

var book=new Book(10,'wpcBook',56);

问:“通过this添加的属性和方法同在prototype中添加的属性和方法有什么区别呀?”

简短的说:通过类创建一个新对象时,this指向的属性和方法都会得到相应的创建,而通过 prototype 继承的属性或者方法是每个对象通过 prototype 访问到,所以我们每次通过类创建一个新对象时这些属性和方法不会再次创建。

通过this添加的属性、方法是在当前对象上添加的,然而 JavaScript 是一种基于原型prototype的语言,所以每创建一个对象时它都有一个原型prototype用于指向其继承的属性、方法。这样通过prototype继承的方法并不是对象自身的,所以在使用这些方法时,需要通过 prototype 一级一级查找来得到。这样你会发现通过this定义的属性或者方法是该对象自身拥有的,

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容