记录一下在工作中了解的内容:
prototype属性可算是JavaScript与其他面向对象语言的一大不同之处。
prototype就是“一个给类的对象添加方法的方法”,使用prototype属性,可以给类动态地添加方法,以便在JavaScript中实现“ 继承”的效果。
具体来说,prototype是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,当你用prototype编写一个类后,如果new一个新的对象,浏览器会自动把prototype中的内容替你附加在对象上。这样,通过利用prototype就可以在JavaScript中实现成员函数的定义,甚至是“继承”的效果。
对于javascript本身而言是基于对象的,任何元素都可以看成对象。然而类型和对象是不同的,而我们所讲的prototype属性即是基于类型的一种属性。对于prototype的基本使用就如对象的创建及属性赋值一样的简单。直接通过赋值操作即可完成属性的创建。
关于prototype,理解这个很有必要 :
* 可以在类型上使用proptotype来为类型添加行为。这些行为只能在类型的实例上体现。
* JS中允许的类型有Array, Boolean, Date, Enumerator,Error, Function, Number, Object, RegExp, String
* 在实例上不能使用prototype,否则会发生编译错误
* 可以为类型定义“静态”的属性和方法,直接在类型上调用即可
* 实例不能调用类型的静态属性或方法,否则发生对象未定义的错误
* 可以在外部使用prototype为自定义的类型添加属性和方法。
* 也可以在对象上改变或增加方法。(和普遍的面向对象的概念不同)