Javascript类的创建

Javascript类的创建有两种方式
一、声明一个函数保存在变量里,然后在这个函数的内部通过对this添加属性和方法来实现对类添加属性和方法。
  1. var Book = function (id,bookname,price){
  2. this.id = id;
  3. this.bookname = bookname;
  4. this.price = price;
  5. }
二、通过在类的原型(prototype)上来赋予属性和方法
    1、为原型对象赋值
  1. /**
  2. * 为Book的原型赋值display方法
  3. */
  4. Book.prototype.display = function(){
  5. console.info('this bookname is:'+this.bookname+' and price is :'+this.price);
  6. }

    2、将一个对象赋值给类的原型对象(以上两种方法不能同时使用,会发生覆盖行为)
  1. /**
  2. * 将对象display方法赋值给Book的原型对象
  3. * @type {{display: Book.protptype.display}}
  4. *
  5. */
  6. Book.prototype = {
  7. display:function(){
  8. console.info('Book.prototype');
  9. }
  10. };

类创建成功了,可以通过new出这个对象来调用该对象的属性和方法
  1. var book = new Book('1','Javascript 设计模式','48');
  2. book.display();

三、通过this添加的属性和方法与在prototype中添加属性和方法的区别
    通过this添加的对象和方法是在当前对象上添加的,我们每次通过类创建一个对象是,this指向的属性和方法都会得到相应的创建。而在Javascript是一种基于prototype的语言,所以在每创建一个对象时,他都有一个原型prototype指向其继承的属性和方法,这样通过prototype继承的方法不是其自身的属性和方法,是通过prototype访问到的,所以我们每次通过类创建一个新对象时,这些属性和方法是不会被创建的。





posted @ 2016-09-17 19:16  endy_zhu  阅读(199)  评论(0编辑  收藏  举报