js中的面向对象之对象常见创建方法详解

yizhihongxing

JS中的面向对象之对象常见创建方法详解

1. 对象字面量

对象字面量是创建对象的一种简单方法,它是用一对花括号{}括起来的数据结构,其中包含一个或多个属性和属性值,属性名和属性值用冒号:”分隔,多个属性之间用逗号,`分隔。

示例代码:

let student = {
  name: 'Tom',
  age: 20,
  gender: 'male',
  sayHi: function () {
    console.log('Hi, my name is ' + this.name);
  }
};

以上代码就创建了一个包含了name, age, gender, sayHi四个属性的对象student,其中属性sayHi的值是一个匿名含参数的函数。

注意:在对象字面量中方法必须是匿名函数,这会影响到后续的操作。

2. new Object()构造函数

new Object()是创建 JavaScript 对象的一种最简单的方法,它可以创建一个空的代码块或者一个非常简单的对象,然后属性和方法可以在其他地方添加和定义。

示例代码:

let student = new Object();
student.name = 'Tom';
student.age = 20;
student.gender = 'male';
student.sayHi = function () {
  console.log('Hi, my name is ' + this.name);
};

以上代码创建了一个空对象student,然后通过.语法为其添加属性和方法。

3. 工厂函数

使用工厂函数可以创建多个相似的对象实例,工厂函数是一个普通函数,通过函数的返回值来为调用者创建新的对象实例。

示例代码:

function createStudent(name, age, gender) {
  let student = new Object();
  student.name = name;
  student.age = age;
  student.gender = gender;
  student.sayHi = function () {
    console.log('Hi, my name is ' + this.name);
  };
  return student;
}

let student1 = createStudent('Tom', 20, 'male');
let student2 = createStudent('Lucy', 18, 'female');

以上代码中,我们使用createStudent函数创建了两个相似的对象实例student1student2,通过传递不同的参数来实现不同的创建。

4. 构造函数

构造函数和工厂函数灵活性相同,但语法上有很大不同,构造函数是使用new关键字调用的函数,调用过程中会自动创建一个新的对象实例,并将this关键字指向该新创建的对象实例,最后再在构造函数中为该对象实例添加属性和方法。

示例代码:

function Student(name, age, gender) {
  this.name = name;
  this.age = age;
  this.gender = gender;
  this.sayHi = function () {
    console.log('Hi, my name is ' + this.name);
  };
}

let student1 = new Student('Tom', 20, 'male');
let student2 = new Student('Lucy', 18, 'female');

以上代码中,我们使用Student函数创建了两个相似的对象实例student1student2,通过传递不同的参数来实现不同的创建。

小结

以上是 JS 中常见的对象创建方法,每种方法各有优缺点,在不同的场合下可以灵活应用,从而具有更好的效率和易用性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中的面向对象之对象常见创建方法详解 - Python技术站

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

相关文章

  • 详解webpack-dev-server使用http-proxy解决跨域问题

    Webpack-dev-server 是 webpack 中提供的一个开发服务器,使我们可以在开发环境中快速开发,通过 webpack-dev-server 实现的 HMR(hot module replacement)功能,可以很方便的在不刷新浏览器页面的情况下实现模块热替换,极大地提升了开发效率。 在开发过程中,我们经常需要和服务器端进行 API 接口的…

    JavaScript 2023年6月11日
    00
  • JavaScript中的Promise详解

    JavaScript中的Promise详解 本文将详细讲解JavaScript中Promise的相关知识,分别从Promise的含义和用法、Promise的状态和状态变化、Promise的链式调用、Promise的并行执行等方面进行阐述。 Promise的含义和用法 Promise是ECMAScript6引入的新特性,它使异步操作变得更加容易和直观。在原生的…

    JavaScript 2023年5月28日
    00
  • JSP学习心得

    JSP学习心得攻略 JSP(Java Server Pages)是Java EE Web应用程序的基础。当您了解了它的核心概念和编程模型后,您就可以使用JSP构建高效、安全和可维护的Web应用程序。 了解JSP的语法和功能 JSP是一个动态Web页面技术,它通过Java代码和HTML文本产生动态内容。JSP支持以下语法组件: 用<% %>包围的J…

    JavaScript 2023年5月28日
    00
  • webpack output.library的16 种取值方法示例

    下面我将为你详细讲解关于“webpack output.library的16种取值方法示例”的完整攻略。 首先,我们需要了解output.library的含义。output.library是指将你的一些 JavaScript 代码打包到一个或多个库(library)中,使得其在浏览器环境或 Node.js 环境中能够被其他地方引用和使用。它的取值方式是一个字…

    JavaScript 2023年6月10日
    00
  • 使用JS操作文件(FileReader读取–node的fs)

    使用JS操作文件可以通过浏览器的FileReader API或Node.js的fs模块来实现。下面分别介绍这两种方式的实现方法。 使用FileReader读取文件 步骤 通过<input type=”file”>元素选择文件,获取文件的File对象 利用FileReader对象读取文件内容 将读取的文件内容显示到页面上 代码示例 <!DOC…

    JavaScript 2023年5月27日
    00
  • js 通过Object.defineProperty() 定义和控制对象属性

    JavaScript的Object.defineProperty()方法可以用来定义和控制对象属性的访问方式。它可以让我们在对象上定义新属性,或修改已有属性的getter和setter方法。本文将全面介绍Object.defineProperty()的使用方法及其示例。 基本用法 Object.defineProperty()方法接受三个参数:要定义属性的对…

    JavaScript 2023年5月27日
    00
  • Python实现网页截图(PyQT5)过程解析

    下面我将详细讲解如何使用Python和PyQT5实现网页截图。 准备工作 在使用Python实现网页截图之前,需要先安装PyQT5和selenium库。可以使用如下的命令来安装: pip install PyQt5 selenium 除此之外,还需要下载Chrome浏览器对应版本的驱动程序。可以到ChromeDriver官网下载对应的驱动程序。 实现过程 导…

    JavaScript 2023年6月11日
    00
  • js使用正则实现ReplaceAll全部替换的方法

    下面是使用正则实现 ReplaceAll 全部替换的方法的攻略。 什么是 ReplaceAll ReplaceAll 是指使用一定规则,将一个字符串中所有匹配到的子字符串全部替换为新的字符串,而不仅仅是替换第一个匹配到的子字符串。 实现 ReplaceAll 的方法 JavaScript 自带的 replace() 方法只会替换首个匹配到的子串,无法实现 R…

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