Javascript 面向对象的Class, 怎么写最好.

JavaScript029

Javascript 面向对象的Class, 怎么写最好.,第1张

对于面向对象的写法, 从最基础的类开始, javascript就有很多种方法写一个类, 那到底哪种是最佳的呢? 和同事讨论, 认为以下的写法是最OK的.functionClassA(){var_this=this//这是为了给ClassA的私有类使用本实例var_field1//private的成员变量varprivateMethod1=function(){//private里调用private,直接用。_field1=1privateMethod2()//private里调用public,用_this.xxx。_this.publicMethod1()}this.publicMethod1=function(){//public里调用private,直接用。_field1=1privateMethod1()//public里调用public,用this.xxx。this.publicMethod2()}ClassA.prototype.staticMethod1=function(){//静态方法}}functionuser(){vara=newClassA()//public的调用,private的外面就看不到了。a.publicMethod1()//静态方法,必须加.prototype,没办法, JS能这样已经很不错了.//而且通过实例a.staticMethod1()也能调用。

init只是习惯性写法,一直以来编程人员的编写习惯而已。不是必须要这样写,不过养成共同的习惯对于自己及他人以后对代码进行修改或者浏览会提供方便。

至于为什么需要初始化,这是大部分对象所需要具有的通用属性。可能网站小的时候init初始化共用属性作用不大,但当多次调用该对象时,对象初始化则可能根据调用个体的不同而对本身进行调整。打个比方,“动物”是一个对象函数,作用都是给对象画上四条腿。把羊、牛、狮子分别赋予“动物”函数时,“动物”函数就需要根据个体的不同进行初始化确定四条腿的粗细了。

建议在编写对象时按照通用的写法,毕竟一个对象不是目前可以用到的,以后在其它地方也会用到或者会进行升级拥有更强大的功能,这时候按照通用习惯编写代码就显示出它的优势了。

什么是对象

       

JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。

对象的属性:反映该对象某些特定的性质的,如:字符串的长度、图像的长宽等;

对象的方法:能够在对象上执行的动作。例如,表单的“提交”(Submit),时间的“获取”(getYear)等;

JavaScript 提供多个内建对象,比如 String、Date、Array 等等,使用对象前先定义,如下使用数组对象:

  var objectName =new Array()//使用new关键字定义对象

或者

  var objectName =[]

访问对象属性的语法:

objectName.propertyName

如使用 Array 对象的 length 属性来获得数组的长度:

var myarray=new Array(6)//定义数组对象

var myl=myarray.length//访问数组长度length属性

以上代码执行后,myl的值将是:6

访问对象的方法:

objectName.methodName()

如使用string 对象的 toUpperCase() 方法来将文本转换为大写:

var mystr="Hello world!"//创建一个字符串

var request=mystr.toUpperCase() //使用字符串对象方法

以上代码执行后,request的值是:HELLO WORLD!