欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

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

程序员文章站 2022-04-05 14:40:08
...
javascript是动态语言,可以在运行时给对象添加属性,也可以给对象删除(delete)属性

复制代码 代码如下:








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

javascript 数组排序

复制代码 代码如下:









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

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

复制代码 代码如下:


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

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

第二种方式: 工厂方式

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

复制代码 代码如下:









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

复制代码 代码如下:









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

复制代码 代码如下:









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

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

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

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

②可能会导致程序错误

复制代码 代码如下:









复制代码 代码如下:









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

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

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

复制代码 代码如下:









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

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

复制代码 代码如下: