从纯粹的面向对象思想(Java思想)向Javascript语言面向对象思想的转化沉痛而惨烈。Javascript中对象和类的概念转化悄然不动声色,让人迷糊。有时候,对Java理解得越清楚,对Javascript理解起来就越费劲。其中,对Javascript的原型对象的理解颇费功夫。
按照定义,每个javascript对象都有一个原型对象(简称原型),这个原型是由该对象的构造函数所定义(javascript自动创建的),并且对象继承原型的所有属性和方法(函数),比如 一个String对象 的原型为 String.prototype ,如果我们想要给String类添加方法,可以这样做(比如添加常用的trim()方法):
js 代码
String.prototype.trim = function (){
return this.replace(/(^s*)|(s*$)/g, "");
}
这个特性是相当令人惊讶的,因为这破坏了封装性,就好像在Java中你可以对Object进行修改一样。而function() 可以当作数据来给左操作数赋值(而不仅仅是当作动作),也让人吃惊...[ 查看全文 ]