最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

学习javascript面向对象掌握创建对象的9种方式_javascript技巧

来源:动视网 责编:小OO 时间:2020-11-27 21:48:17
文档

学习javascript面向对象掌握创建对象的9种方式_javascript技巧

【1】使用Object构造函数。[缺点]使用同一个接口创建很多对象,会产生大量重复代码。【2】使用对象字面量。[缺点]使用同一个接口创建很多对象,会产生大量重复代码。【3】工厂模式:抽象了创建具体对象的过程,考虑到ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节。[缺点]解决了创建多个相似对象的问题,但没有解决对象识别的问题。【4】构造函数模式:没有显式地创建对象,直接将属性和方法赋给了this对象,没有return语句。[缺点]每个方法都要在每个实例上重新创建一遍。【4.1】构造函数拓展模式:把函数定义转移到构造函数外部。[缺点1]在全局作用域中定义的函数实际上只能被某个对象调用,这让全局作用域有点名不副实。
推荐度:
导读【1】使用Object构造函数。[缺点]使用同一个接口创建很多对象,会产生大量重复代码。【2】使用对象字面量。[缺点]使用同一个接口创建很多对象,会产生大量重复代码。【3】工厂模式:抽象了创建具体对象的过程,考虑到ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节。[缺点]解决了创建多个相似对象的问题,但没有解决对象识别的问题。【4】构造函数模式:没有显式地创建对象,直接将属性和方法赋给了this对象,没有return语句。[缺点]每个方法都要在每个实例上重新创建一遍。【4.1】构造函数拓展模式:把函数定义转移到构造函数外部。[缺点1]在全局作用域中定义的函数实际上只能被某个对象调用,这让全局作用域有点名不副实。


本文为大家分享了javascript创建对象的9种方式,供大家参考,具体内容如下

【1】使用Object构造函数
[缺点]使用同一个接口创建很多对象,会产生大量重复代码

【2】使用对象字面量
[缺点]使用同一个接口创建很多对象,会产生大量重复代码

【3】工厂模式:抽象了创建具体对象的过程,考虑到ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节
  [缺点]解决了创建多个相似对象的问题,但没有解决对象识别的问题

【4】构造函数模式:没有显式地创建对象,直接将属性和方法赋给了this对象,没有return语句
  [缺点]每个方法都要在每个实例上重新创建一遍

【4.1】构造函数拓展模式:把函数定义转移到构造函数外部
[缺点1]在全局作用域中定义的函数实际上只能被某个对象调用,这让全局作用域有点名不副实
[缺点2]若对象需要定义很多方法,就要定义很多全局函数,这个自定义引用类型就没有封装性可言

【5】原型模式:我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。如果按照字面意思来理解,prototype就是通过调用构造函数而创建的对象实例的原型对象

【5.1】更简单的原型模式:为了减少不必要的输入,也为了从视觉上更好地封装原型的功能,用一个包含所有属性和方法的对象字面量来重写整个原型对象。
[缺点]以这种方式重设constructor属性会导致它的[[Enumerable]]特性被设置为true,默认情况下原生的constructor属性是不可枚举的

【5.2】解决enumerable问题的原型模式

[原型模式缺点1]重写原型对象切断了现有原型与已存在对象实例之间的联系,它们引用的仍是最初的原型。

[原型模式缺点2]引用类型属性的共享性问题突出

【6】组合模式:组合使用构造函数模式和原型模式是创建自定义类型的最常见方式。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。这种混成模式还支持向构造函数传递参数,是用来定义引用类型的一种默认模式

【7】动态原型模式:把所有信息都封装在构造函数中,通过在构造函数中初始化原型(仅在必要情况下),又保持了同时使用构造函数和原型的优点。换句话说,可以通过检查某个存在的方法是否有效,来决定是否要初始化原型。
  [注意]使用动态原型模式时,不能使用对象字面量重写原型。如果在已经创建了实例的情况下重写原型,那么就会切断现有实例与新实例之间的联系

【8】寄生构造函数模式:创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象

【寄生构造函数模式应用】创建一个具有额外方法的特殊数组。由于不能直接修改Array构造函数,因此可以使用这个模式

【9】稳妥构造函数模式:所谓稳妥对象指没有公共属性,而且其方法也不引用this的对象。稳妥对象最适合在一些安全环境中(这些环境会禁止使用this和new)或者在防止数据被其他应用程序改动时使用。

文档

学习javascript面向对象掌握创建对象的9种方式_javascript技巧

【1】使用Object构造函数。[缺点]使用同一个接口创建很多对象,会产生大量重复代码。【2】使用对象字面量。[缺点]使用同一个接口创建很多对象,会产生大量重复代码。【3】工厂模式:抽象了创建具体对象的过程,考虑到ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节。[缺点]解决了创建多个相似对象的问题,但没有解决对象识别的问题。【4】构造函数模式:没有显式地创建对象,直接将属性和方法赋给了this对象,没有return语句。[缺点]每个方法都要在每个实例上重新创建一遍。【4.1】构造函数拓展模式:把函数定义转移到构造函数外部。[缺点1]在全局作用域中定义的函数实际上只能被某个对象调用,这让全局作用域有点名不副实。
推荐度:
标签: 种方法 js 对象
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top