归纳下js面向对象的几种常见写法总结

针对“归纳下js面向对象的几种常见写法总结”的完整攻略,我给出如下的详细讲解:

1. 面向对象编程

面向对象编程(OOP,Object Oriented Programming)是一种编程范式,它将任务分解成一些个体,这些个体通过彼此分工协作来完成任务。在 JavaScript 中,对象、构造函数、原型链和继承都是实现 OOP 的关键元素。

2. JS面向对象编程的几种常见写法

下面我们将分别讲解几种常见的 JS 面向对象编程写法:

2.1 工厂模式

工厂模式是通过工厂方法来创建对象的一种方式。它可以根据传入的参数来创建不同的对象,这些对象都具有统一的接口。示例代码如下:

function createPerson(name) {
  var o = new Object()
  o.name = name
  o.sayName = function() {
    console.log(this.name)
  }
  return o
}

var person1 = createPerson('John')
var person2 = createPerson('Tom')
person1.sayName() //输出 'John'
person2.sayName() //输出 'Tom'

2.2 构造函数模式

构造函数模式是使用 new 关键字来创建对象的一种方式。这种方式下,可以将对象的初始化绑定到构造函数中,从而避免了代码冗余,可以生成多个具有相同属性和方法的对象。示例代码如下:

function Person(name) {
  this.name = name
  this.sayName = function() {
    console.log(this.name)
  }
}

var person1 = new Person('John')
var person2 = new Person('Tom')
person1.sayName() //输出 'John'
person2.sayName() //输出 'Tom'

2.3 原型模式

原型模式是使用原型链来创建和继承对象的一种方式。原型模式下,可以将公共属性和方法以原型对象的形式来创建,从而避免了大量重复的属性和方法声明。示例代码如下:

function Person() {}

Person.prototype.name = 'John'
Person.prototype.sayName = function() {
  console.log(this.name)
}

var person1 = new Person()
var person2 = new Person()
person1.sayName() //输出 'John'
person2.sayName() //输出 'John'

2.4 组合模式

组合模式是将构造函数模式和原型模式进行结合的一种方式。这种方式下,使用构造函数来初始化属性,使用原型对象来声明公共属性和方法。示例代码如下:

function Person(name) {
  this.name = name
}

Person.prototype.sayName = function() {
  console.log(this.name)
}

var person1 = new Person('John')
var person2 = new Person('Tom')
person1.sayName() //输出 'John'
person2.sayName() //输出 'Tom'

3. 结语

以上就是几种常见的 JS 面向对象编程写法。根据项目的需求和开发者的习惯,可以采用不同的方式来实现。希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:归纳下js面向对象的几种常见写法总结 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 浅谈DOM的操作以及性能优化问题-重绘重排

    浅谈DOM的操作以及性能优化问题 什么是DOM DOM(Document Object Model,文档对象模型)是HTML和XML的编程接口,它将HTML和XML文档表示为树形结构,并提供了一套API用于访问和操作这个树形结构。 DOM的操作 在使用JavaScript操作DOM时,我们通常需要涉及到以下DOM操作: 获取DOM元素:通过document.…

    JavaScript 2023年6月10日
    00
  • js获取url参数值的两种方式

    下面是使用 JavaScript 获取 URL 参数的两种方式的详细攻略。 方式一:使用正则表达式 使用正则表达式是一种比较常用的方式,它可以从 URL 中提取出我们需要的参数。这种方法核心就是通过正则表达式匹配 URL 字符串中的参数值。 function getQueryString(key) { const reg = new RegExp(‘(^|&…

    JavaScript 2023年6月11日
    00
  • JS查找孩子节点简单示例

    JS查找孩子节点是在前端开发中常用的操作,可以通过它来查找DOM树中某个节点的直接子节点或者所有子孙节点。以下是JS查找孩子节点的完整攻略: 1. 获取父节点元素 首先需要获取需要查找孩子节点的父元素,可以使用 querySelector 或者 getElementById 等方式获取DOM树中对应的父节点元素。例如: const parentEle = d…

    JavaScript 2023年6月10日
    00
  • JavaScript属性操作

    JavaScript属性操作 在JavaScript中,我们可以使用属性来表示对象的特征及状态。属性操作是常见的JavaScript编程任务,涉及到访问、设置、删除属性等任务。本文将介绍JavaScript属性操作的基本知识以及几个例子。 访问属性 我们可以使用点号或方括号来访问JavaScript对象的属性。点号方式是JavaScript语法中更常用的一种…

    JavaScript 2023年5月18日
    00
  • Javascript NEGATIVE_INFINITY 属性

    以下是关于JavaScript NEGATIVE_INFINITY属性的完整攻略。 JavaScript NEGATIVE_INFINITY属性 JavaScript NEGATIVE_INFINITY属性是Number对象的一个属性,它表示JavaScript中的负无穷大。NEGATIVE_INFINITY是常量,它不能被修改。 下面是一个使用NEGATI…

    JavaScript 2023年5月11日
    00
  • WEB 浏览器兼容 推荐收藏

    下面是关于WEB浏览器兼容推荐收藏的完整攻略。 什么是WEB 浏览器兼容? WEB浏览器兼容是指一种 WEB 站点可被多种浏览器在不同操作系统环境下展现,且表现基本一致的能力。WEB的兼容性是 WEB 应用开发中最为重要的成果之一,无论是在美观还是用户体验上都占据重要地位。 为什么需要WEB 浏览器兼容? 随着不同操作系统和不同版本的浏览器的出现,WEB 在…

    JavaScript 2023年6月10日
    00
  • JavaScript中变量提升 Hoisting

    JavaScript中变量提升 Hoisting 在JavaScript中,变量提升指的是在代码执行之前,JavaScript引擎将所有的变量声明提升到作用域的顶部,无论这些变量是在何处声明的。这意味着我们可以在变量声明之前使用变量。 变量提升的过程 当JavaScript代码在执行之前被解析时,所有的变量声明都被提升到了函数或全局作用域的顶部。这个过程被称…

    JavaScript 2023年6月10日
    00
  • 浅谈JavaScript函数节流

    浅谈 JavaScript 函数节流 函数节流(throttle)是一种优化高频执行函数的方法,它可以确保一定时间间隔内只执行一次函数。在一些需要触发频率比较高的事件,比如页面滚动、鼠标拖拽等事件中,使用函数节流可以有效提升页面性能。 基本实现原理 函数节流的基本实现原理是设置一个定时器,再限定在指定的时间内只触发一次函数。如果在等待的时间内再次触发函数,就…

    JavaScript 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部