javascript是不是有一个原型(prototype)的概念?这有什么用?如何用?

解决方案 »

  1.   

    这个是javascript的难点之一,主要是可以实现类及继承等,建议找本javascrip的说仔细理解下。
      

  2.   

    简单的给LZ介绍下吧,具体细节还得多看书。
    原型是js中对象的基础,因为js中没有“类”的概念,所以使用prototype来模拟实现“类”的继承
    所有的对象都是Object的实例,并继承了所有基本方法
    举个例子:
    function Book(title,publisher){ //相当于类的构造函数
      this.title = title;
      this.publisher = publisher;
    }
    Book.prototype.sayTitle = function (){
     alert(this.title)
    }
    var book1 = new Book('js','图灵书');
    var book2 = new Book('js2','图灵书2');
    alert(book1 instanceof Book);//true 
    alert(book2 instanceof Object) //true 因为book2的原型最终指向了Object,这就是prototype的巧妙设计所在
    实例book1的原型是Book.prototype,Book.prototype的原型是Object,这个过程创建了一个原型链,而book1和book2继承了他们的成员,这就是原型链的简易原理。LZ可以找本书详细的看下 《javascript权威指南》就挺好的
      

  3.   

    我觉得book1和book2没有什么本质的区别啊,按照你说的book2的原型最终指向了Object,那么book1的也原型也应该最终指向了Object的吧?是这样理解的吗?
      

  4.   

    是的 js会沿着原型链去寻找对象的属性及方法直到Object的原型为止
      

  5.   

    prototype

    constructor
    精通这两个你就可以了
    jQuery核心的部分也用到。
      

  6.   

    发现javascript越来越精深,以前刚开始学的时候觉得很简单,但越到后面发现javascript背后还有很多东西不知道,原来javascript可以这么强大!
      

  7.   

    我的理解:
    原型链,其实是构造函数的一个属性,这个属性是个对象。
    constructor.prototype=object
    人.祖先=猩猩