javascript 构造函数方式定义对象_基础知识
程序员文章站
2022-03-15 16:09:01
...
javascript是动态语言,可以在运行时给对象添加属性,也可以给对象删除(delete)属性
复制代码 代码如下:
属性名:方法名 也是可以的.因为函数本身就是个对象
javascript 数组排序
复制代码 代码如下:
javascript中定义对象的几种方式(javascript中没有类的概念,只有对象 )
第一种方式: 基于已有对象扩充其属性和方法
复制代码 代码如下:
这种方法具有局限性,因为javascript不像java那样具有类的概念,写一个类,之后new就可以得到一个具有了这些属性、方法的对象了。
这时如果要拥有object2就只能把上面来的代码再写一份,这是不太好的。
第二种方式: 工厂方式
类似于java中静态的工厂方法。
复制代码 代码如下:
上面这种方式创建对象有弊端(每个对象都有一个get方法,从而浪费了内存),改进后的工厂方式( 所有对象共享一个get方法):
复制代码 代码如下:
第三种方式: 构造函数方式 定义对象
复制代码 代码如下:
第四种方式: 原型(Prototype)方式创建对象
prototype是object对象中的属性,所有person对象也可以拥有prototype这个属性。
可以给对象的原型增加一些属性,方法。
单纯的使用原型方式创建对象的缺点:①无法传参数,只能在对象创建后再改变它的值
②可能会导致程序错误
复制代码 代码如下:
复制代码 代码如下:
单纯使用原型方式定义对象无法再构造函数中为属性赋初值,只能在对象生成后再去改变属性值。
第五种方式: 使用原型+构造函数方式来定义对象----推荐使用
对象之间的属性互不干扰
各个对象之间共享同一个方法
复制代码 代码如下:
第六种方式: 动态原型方式----推荐使用
在构造函数中通过标志量让所有对象共享一个方法,而每个对象拥有自己的属性。
复制代码 代码如下:
推荐阅读
-
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
-
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
-
浅谈javascript构造函数与实例化对象
-
javascript构造函数以及原型对象的理解
-
javascript中如何用构造函数创建对象以及子类的继承?
-
javascript工厂模式和构造函数模式创建对象方法解析
-
JS高级---工厂模式创建对象和自定义构造函数创建对象的区别
-
前端笔记知识点整合之JavaScript面向对象(一)Object&函数上下文&构造函数&原型链
-
javascript设计模式之对象工厂函数与构造函数详解
-
浅谈javascript构造函数与实例化对象