首页 >web前端 >js教程 >javascript 构造函数方式定义对象_基础知识

javascript 构造函数方式定义对象_基础知识

WBOY
WBOY原创
2016-05-16 16:22:381540浏览

javascript是动态语言,可以在运行时给对象添加属性,也可以给对象删除(delete)属性

复制代码 代码如下:




        



属性名:方法名  也是可以的.因为函数本身就是个对象

javascript 数组排序

复制代码 代码如下:





        



javascript中定义对象的几种方式(javascript中没有类的概念,只有对象 )

第一种方式: 基于已有对象扩充其属性和方法

复制代码 代码如下:


这种方法具有局限性,因为javascript不像java那样具有类的概念,写一个类,之后new就可以得到一个具有了这些属性、方法的对象了。

这时如果要拥有object2就只能把上面来的代码再写一份,这是不太好的。

第二种方式: 工厂方式

           类似于java中静态的工厂方法。

复制代码 代码如下:





        



上面这种方式创建对象有弊端(每个对象都有一个get方法,从而浪费了内存),改进后的工厂方式( 所有对象共享一个get方法):

复制代码 代码如下:





        



第三种方式: 构造函数方式 定义对象

复制代码 代码如下:





        



第四种方式: 原型(Prototype)方式创建对象

prototype是object对象中的属性,所有person对象也可以拥有prototype这个属性。

可以给对象的原型增加一些属性,方法。

单纯的使用原型方式创建对象的缺点:①无法传参数,只能在对象创建后再改变它的值

                                                      ②可能会导致程序错误

复制代码 代码如下:





        



复制代码 代码如下:





        



单纯使用原型方式定义对象无法再构造函数中为属性赋初值,只能在对象生成后再去改变属性值。

第五种方式: 使用原型+构造函数方式来定义对象----推荐使用

对象之间的属性互不干扰
各个对象之间共享同一个方法

复制代码 代码如下:





        



第六种方式: 动态原型方式----推荐使用

         在构造函数中通过标志量让所有对象共享一个方法,而每个对象拥有自己的属性。

复制代码 代码如下:





        



声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn