JS创建对象的四种方式

yizhihongxing

以下是“JS创建对象的四种方式”的完整攻略:

1. 对象字面量

对象字面量是一种最简单的对象创建方式,就是直接在代码中书写一个对象。具体格式如下:

let obj = {
  key1: 'value1',
  key2: 'value2',
  key3: function() {
    console.log('this is a method');
  }
}

其中,对象中的属性值可以是任意类型,甚至是函数。可以通过 '.' 或 '['']' 访问对象中的属性和方法。

obj.key1; // 'value1'
obj['key2']; // 'value2'
obj.key3(); // 'this is a method'

2. 构造函数模式

构造函数模式指的是使用构造函数来创建对象,通过创建实例对象来创建新的对象。具体格式如下:

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

let p1 = new Person('Jack', 26);
let p2 = new Person('Tom', 25);

其中,Person 就是一个构造函数,然后通过 new 操作符来创建实例。这里的 this 指向的是每个实例对象本身。

3. 原型模式

原型模式指的是共享一个原型对象,所有实例对象共享该原型对象上的属性和方法。具体格式如下:

function Person() {}

Person.prototype.name = 'Jack';
Person.prototype.age = 26;
Person.prototype.sayName = function() {
  console.log(this.name);
}

let p1 = new Person();
let p2 = new Person();
p1.sayName(); // 'Jack'
p2.sayName(); // 'Jack'

其中,Person 就是一个构造函数,Person.prototype 是一个原型对象,可以向其中添加属性和方法,然后通过 new 操作符来创建实例。这里的 this 指向的是该实例对象本身,在实例找不到对应属性或方法时,它会到该实例的原型对象上找。

4. 组合模式

组合模式是原型模式和构造函数模式的组合,既可以共享原型对象的属性和方法,也可以给每个实例对象添加自己的属性和方法。具体格式如下:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

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

let p1 = new Person('Jack', 26);
let p2 = new Person('Tom', 25);

在这里,我们既在构造函数中给实例对象添加了属性和方法,又在原型对象上添加了属性和方法,既可以让每个实例对象的属性和方法独立,又可以共享实例对象的属性和方法。

至此,我们完成了“JS创建对象的四种方式”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS创建对象的四种方式 - Python技术站

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

相关文章

  • WebStorm 2017.3最新汉化激活破解及安装教程(附汉化包+原版下载)

    WebStorm 2017.3最新汉化激活破解及安装教程 下载WebStorm 2017.3 首先,到官网下载WebStorm 2017.3,推荐下载Windows版本。下载后双击WebStorm-*.exe开始安装。 安装WebStorm 2017.3 按照提示进行安装,如果需要更改安装路径,可以点击“Custom”按钮进行自定义安装路径。 汉化WebSt…

    JavaScript 2023年6月1日
    00
  • js文件中调用js的实现方法小结

    下面是详细讲解“js文件中调用js的实现方法小结”的完整攻略: 标题 js文件中调用js的实现方法小结 正文 在JS文件中调用JS需要使用到<script>标签,这个标签有两种用法: 方法1:直接引入JS文件 可以在使用外部JS文件的时候,在HTML文件中使用<script>标签,如下所示: <head> <titl…

    JavaScript 2023年5月27日
    00
  • Vue封装一个Tabbar组件 带组件路由跳转方式

    下面就来详细讲解如何用Vue封装一个Tabbar组件并带有组件路由的跳转方式。 一、准备工作 在开始编写代码之前,需要先安装Vue以及Vue Router等组件。具体步骤如下: 安装Vue.js npm install vue -S 安装Vue Router npm install vue-router -S 二、编写Tabbar组件 下面我们开始编写Tab…

    JavaScript 2023年6月11日
    00
  • 原生js实现电子时钟

    接下来我将为你讲解如何使用原生js实现电子时钟。 基本思路 使用原生js实现电子时钟的基本思路如下: 获取当前的时间,包括小时、分钟、秒钟; 将时间转换为字符串,并按照“hh:mm:ss”的格式显示出来; 每隔一秒钟刷新一次时间。 具体步骤 下面将介绍具体的实现步骤。 1. 获取当前的时间 使用js内置对象Date可以获取到当前的时间,其中包括年、月、日、小…

    JavaScript 2023年5月27日
    00
  • bootstrap表单示例代码分享

    接下来我将为您详细讲解“bootstrap表单示例代码分享”的完整攻略。 Bootstrap表单示例代码分享 1. Bootstrap表单介绍 Bootstrap是目前非常流行的前端开发框架,其能够快速构建响应式、移动设备优先的Web项目。表单是Web开发中非常常见的组件,Bootstrap也提供了丰富的表单组件样式和交互效果,大大简化了表单的开发难度。 B…

    JavaScript 2023年6月10日
    00
  • 微信小程序可滑动月日历组件使用详解

    下面是关于“微信小程序可滑动月日历组件使用详解”的完整攻略: 一、安装 安装这个可滑动月日历组件很简单,只需要使用npm进行安装即可: npm i calendar-month 二、引用组件 在需要使用月日历组件的页面中,引用月日历组件的wxml文件路径,并在js文件中绑定对应的组件属性即可: <!– 日历组件 –> <calendar…

    JavaScript 2023年6月10日
    00
  • JavaScript通过RegExp使用正则表达式过程详解

    JavaScript通过RegExp使用正则表达式过程详解 在JavaScript中,正则表达式是一种非常强大的工具,可以用来匹配和操作字符串。在本篇文章中,我们将详细讲解JavaScript通过RegExp使用正则表达式的过程。 创建正则表达式 在JavaScript中,可以使用RegExp对象来创建正则表达式。有两种方式来创建正则表达式:使用字面量,或者…

    JavaScript 2023年6月10日
    00
  • 编写跨浏览器的javascript代码必备[js多浏览器兼容写法]

    编写跨浏览器的JavaScript代码必备-完整攻略 什么是跨浏览器JavaScript? 跨浏览器JavaScript意味着编写能够在不同浏览器上运行的代码,这是JavaScript编程时最常见的问题之一。不同浏览器可能支持不同的JavaScript版本或API,因此代码运行在一个浏览器上可能会出错在另一个浏览器上,这给一些开发者带来了很大的困扰。 为了解…

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