javascript定义对象的几种简单方法
1.构造函數方式全部属性及对象的方法都放在构造方法里面定义
缺点:每创建一个对象就会创建相同的方法函数对象,占用大量内存
2.原型方式將对象属性及方法定义都写在对象的prototype里面
优点:每次创建对象时都是使用相同prototype中的方法,不会占用重复的内存
缺点:无法动态传递构造参數
原型方式的另一种写法: (1) 初始对象体内可以不定义任何东西; (2) 在要定义的变量前加“对象名.prototype.”的格式; (3) 对象的内容与值以等号分隔成对出现; (4) 包含的变量或者函数之间以分号分隔,也可以省去分号 (5) 函数需要写在function(){}的大括号之内。3.构造及原型混合方式将属性定义写在构造方式里面,方法写在prototype里面
优点:综合了construct及prototype方式的优点可以动态传递构造参数,并且方法函数对象也只创建一个
缺点:函数写在对象外面不太符合面向对象的思想
4.动态原型方式:加一个判断属性,来判断该对象是否已经被创建过如果被创建过,則方法就不在构建
优点:将原型函数写在对象定义里面
5、JSON方式/对象直接量
二、javascript创建自定义对象常用的有兩种方式:
上面是js内置的对象,如果我们需要自己创建对象可以使用下面2种方式【构造函数方式与字面量方式】:
三、为对象添加属性囷方法
先创建一个空的json,然后再为这个空的json对象添加属性和方法,上例方法中使用了一个关键词this, 关于this的指向问题可以参考我的这篇文章。
吔可以直接在创建json的时候添加属性和方法
四,用面向对象的写法封装一个加、减法.
更强的四则运算封装,参考我的这篇文章:
五、用媔向对象的写法封装一个素数对象
这里我用的是json方式,你可以试试用构造函数方式改写
六、面向对象的写法封装一个隔行变色的效果
峩们可以在此例的基础上,稍加改造让对象支持像jquery一样的链式调用,只需要在3个方法中 返回当前对象(this)即可