JavaScript工厂模式理解

这篇具有很好参考价值的文章主要介绍了JavaScript工厂模式理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

工厂模式是众多种设计模式之一,这种模式抽象了创建具体对象的过程。考虑到JavaScript的模式,因此普通的工厂模式书写如下:

function createPerson(name,age,job){
	var o = new Object();
	o.name = name;
	o.age = age;
	o.job = job;
	o.sayName = function(){
		alert(this.name);
	}
	return o;
}

var p1 = createPerson("Nico",29."Engineer");

工厂模式虽然解决了多个对象相似的问题,但无法解决对象识别问题.比如我想创建人对象,那么是object,如果我想创建狗对象,那么还是object,因此可以将工厂方法再次改造。

function Person(name,age,job){
	this.name = name;
	this.age = age;
	this.job = job;
	this.sayName = function(){
		alert(this.name);
	}
}
var p1 = new Person("Nico",29."Engineer");

他的不同点在于:

  • 没有显式创建对象
  • 直接将属性和方法赋给了this对象
  • 没有return 语句

要创建Person的新实例,必须使用new操作符,以这种方式调用构造函数实际上会经历一下步骤:

  • 创建一个新对象
  • 将构造函数的作用域赋给新对象(因此this就指向了这个新对象);
  • 执行构造函数种的代码(为这个新对象添加属性)
  • 返回新对象

笔者理解

JavaScript工厂模式普通情况熟悉如代码块1就会导致无法识别出对象类型。而代码块2就可以辨别出对象,而且用到了this指针,可以辨别出对象的类型,再使用时可以new,直接创建对象实例,如果不使用new的话,就会产生一个对象undefined文章来源地址https://www.toymoban.com/news/detail-518932.html

到了这里,关于JavaScript工厂模式理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaScript】深度理解js的函数(function、Function)

    学了这么久的JavaScript,函数在JavaScript中最常用之一,如果你不会函数,你就不会JavaScript。 函数就是Function对象,一个函数是可以通过外部代码调用的一个“子程序”,它是头等(first-class)对象,因为它们可以像任何其他对象一样具有属性和方法 。瞧瞧它的定义,注定它能

    2024年01月21日
    浏览(45)
  • 【Java基础】深入理解反射、反射的应用(工厂模式、代理模式)

    Java 反射机制是指在 运行时动态地获取和操作类的信息、调用对象的方法和访问对象的属性的能力 。通过反射,可以在程序运行时分析和修改类的结构、行为和状态。 Java 反射机制提供了以下功能: 获取类的信息:可以获取类的名称、修饰符、父类、实现的接口等。 创建对

    2024年02月09日
    浏览(60)
  • javascript基础七:说说你对Javascript中作用域的理解?

    一、作用域 作用域,即变量(变量作用域又称上下文)和函数生效(能被访问)的区域或集合 换句话说,作用域决定了代码区块中变量和其他资源的可见性 举个粟子 上述例子中,函数myFunction内部创建一个name变量,当我们在全局访问这个变量的时候,系统会报错 这就说明我

    2024年02月07日
    浏览(59)
  • javascript基础十:说说你对Javascript中this对象的理解

    一、定义 函数的 this 在 JavaScript 中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别 在绝大多数情况下,函数的调用方式决定了 this 的值(运行时绑定) this 是函数运行时自动生成的一个内部对象,只能在函数内部使用,总指向调用它的对

    2024年02月06日
    浏览(40)
  • 深入理解JavaScript模块化开发

    前言: 随着JavaScript应用程序的复杂性不断增加,模块化开发成为了一种必备的技术。通过将代码划分为模块,我们可以提高代码的可维护性、可重用性和可扩展性。在本文中,我们将深入探讨JavaScript模块化开发的概念、优势和不同的模块化方案。 模块化开发是将一个大型应

    2024年02月08日
    浏览(92)
  • JavaScript基础——1.js基础语法

    js全称JavaScript,是一种轻量级的面向对象的 编程语言 ,既能用在浏览器中控制页面交互,也能用在服务器端作为网站后台(借助 Node.js),因此 JavaScript 是一种全栈式的编程语言。 JavaScript 与 HTML 和 CSS 共同构成了我们所看到的网页,其中: HTML 用来定义网页的内容,例如标

    2024年04月28日
    浏览(36)
  • JS基础-初识JavaScript

    前面讲了前端开发必备的三种语言。其中的HTML、CSS我们基本上有了比较正确的认识。这里讲一下JavaScript。 语言 功能 结构层 HTML 搭建结构、放置部件、描述定义 样式层 CSS 美化页面、实现布局 行为层 JavaScript 实现交互效果、数据收发、表单验证 HTML构成了基础的骨架。 CSS

    2024年02月10日
    浏览(43)
  • JavaScript(JS基础)

    提示:JS的重点是让静态的页面产生一些变化 提示:JavaScript是弱类型语言,行尾分号可写可不写 首先看下Java 与 JavaScript什么关系 JS编写在 script (脚本)标记中, script 标记可以出现在html中的任意位置,也就是说JS代码可以嵌入在HTML中任意部分,从上到下依次执行 script引入外

    2024年02月11日
    浏览(48)
  • JavaScript基础语法02——JS书写位置

    哈喽,大家好,我是雷工! 今天继续学习JavaScript基础语法,JS的书写位置,俗话说:好记性不如烂笔头,边学边记,方便回顾。 代码写在标签内部 示例: 2.1、要将JS代码直接写在HTML文件里面。 2.2、在HTML文件中添加一个script,用script标签包住,script标签中的代码就是JS代码

    2024年02月10日
    浏览(42)
  • javascript设计模式-面向对象基础

    在JS这种弱类型的语言中,类型不匹配错误很难跟踪。可以使用接口来进行类型检查。如果强制使用,又会弱化语言的灵活性。因为有额外的代码调用,所以又会降低性能。解决方法就是在开发时进行类型检查,在开始完成后删除此部分代码。 但JS中的接口实现方式是模拟的

    2024年01月18日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包