JavaScript 创建对象

下面是 JavaScript 创建对象的完整攻略:

1. 对象创建方式

JavaScript 有三种创建对象的方式:

1.1. Object 构造函数方式

使用 Object 构造函数创建对象时,需要通过 new 操作符创建一个对象实例。

let obj = new Object();
obj.name = '张三';
obj.age = 18;

1.2. 对象字面量方式

对象字面量方式是最常见的对象创建方式,它使用花括号 {} 来定义对象。

let obj = {
  name: '张三',
  age: 18
};

1.3. 构造函数方式

使用构造函数方式创建对象时,需要定义一个构造函数,并通过 new 操作符创建一个对象实例。

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

let obj = new Person('张三', 18);

2. 原型与原型链

在 JavaScript 中,每个对象都有一个原型(prototype),可以将原型看做一个模板,用来定义对象的属性和方法。当访问对象的属性或方法时,如果对象本身没有该属性或方法,则会去原型中查找。

如果一个对象的原型又指向了另一个对象的原型,那么就形成了一个原型链(prototype chain)。

通过原型链,一个对象可以访问到其他对象的属性和方法。

示例代码:

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

// 在 Person.prototype 上添加方法
Person.prototype.sayHi = function() {
  console.log('大家好');
}

let obj = new Person('张三', 18);

// 调用 obj 的 sayHi 方法,由于 obj 没有该方法,所以会在 obj 的原型上查找,即 Person.prototype
obj.sayHi(); // 输出 "大家好"

3. 继承方式

在 JavaScript 中,可以使用原型链来实现继承,也可以使用 ES6 中引入的 class 关键字来实现继承。

3.1. 使用原型链实现继承

使用原型链实现继承时,可以通过让一个构造函数的原型指向另一个构造函数的实例来实现。

示例代码:

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

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

// 让 Student.prototype 的原型指向 Person.prototype,就实现了继承
Student.prototype = new Person();

let obj = new Student('张三', 18, 1);

console.log(obj.name); // 输出 "张三"
console.log(obj.age); // 输出 18
console.log(obj.grade); // 输出 1

3.2. 使用 ES6 中的 class 实现继承

ES6 中引入了 class 关键字,可以更加方便地实现继承。

示例代码:

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

class Student extends Person {
  constructor(name, age, grade) {
    super(name, age);
    this.grade = grade;
  }
}

let obj = new Student('张三', 18, 1);

console.log(obj.name); // 输出 "张三"
console.log(obj.age); // 输出 18
console.log(obj.grade); // 输出 1

以上就是 JavaScript 创建对象的完整攻略。

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

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

相关文章

  • javascript两种function的定义介绍及区别说明

    Javascript中声明函数有两种常见的方式,并且这两种方式是有所不同的。 声明方式一:函数声明 函数声明是最常见的一种方式,有两个部分组成:函数名和函数体。函数声明的语法如下: function functionName(parameters){ //函数体 } 其中,function为关键字,functionName为函数名称(可以自定义),param…

    JavaScript 2023年5月27日
    00
  • js 字符串转化成数字的代码

    当我们需要将一个JS字符串转化成数字时,我们可以使用Javascript内置的parseInt() 函数或parseFloat() 函数。 parseInt()函数 parseInt() 函数可解析一个字符串,并返回一个整数。它的语法格式如下: parseInt(string, radix) 其中,string是需要被转换的字符串,radix是进制数,表示被…

    JavaScript 2023年5月28日
    00
  • JavaScript箭头函数中的this详解

    标题:JavaScript箭头函数中的this详解 在JavaScript中,this是一个非常重要的关键字,它表示当前上下文中的对象。然而,在箭头函数中,this却和常规的函数有所不同,它的指向更有一些特别之处。下面我们将对JavaScript箭头函数中的this进行详细讲解。 正常函数中的this 在正常函数中,this的指向是根据函数的调用方式来决定的…

    JavaScript 2023年6月10日
    00
  • 高性能js数组去重(12种方法,史上最全)

    这里为大家详细讲解“高性能js数组去重(12种方法,史上最全)”的完整攻略。 1. 原始数组去重方法 原始数组去重方法是指使用两层循环遍历原始数组,逐个将元素与新数组中的元素作比较,如果新数组中没有相同的元素,就把该元素压入新数组。这种方法代码简单易懂,适合只有少量元素的数组去重。 代码如下: function unique1(arr) { var newA…

    JavaScript 2023年5月27日
    00
  • javascript实现的字符串与十六进制表示字符串相互转换方法

    当我们需要将一个字符串转换为十六进制格式时,可以使用 JavaScript 中的 toString(16) 方法来实现。而将十六进制格式的字符串转换为正常的字符串时,则需要先将其转换为十进制数,再调用字符编码方法 String.fromCharCode() 来获取字符串。 字符串转换为十六进制格式字符串 以下是一个示例代码: const str = ‘hel…

    JavaScript 2023年5月19日
    00
  • JavaScript生成指定范围的时间列表

    下面我会就“JavaScript生成指定范围的时间列表”的完整攻略进行详细讲解,希望对您有所帮助。 1. 需求分析 在进行编程操作之前,我们首先需要对需求进行分析,弄清楚需要完成的具体目标。在这个需求中,我们需要实现如下功能: 生成指定范围的时间列表,以数组形式返回 可以指定时间间隔 包含起始时间和结束时间 2. 解决方案 有了需求之后,我们可以采用如下方式…

    JavaScript 2023年5月27日
    00
  • JavaScript定义数组的三种方法(new Array(),new Array(‘x’,’y’)

    下面我来详细讲解JavaScript定义数组的三种方法。 一、使用数组字面量 使用数组字面量定义数组最简单,也是最常用的方法。语法如下: let arr = [item1, item2, …, itemN]; 其中,item1至itemN表示数组中的每个元素。这些元素可以是任意类型的,包括数字、字符串甚至还可以是其他数组。 示例: let arr = […

    JavaScript 2023年5月27日
    00
  • javascript 使用sleep函数的常见方法详解

    让我来详细讲解一下 “javascript 使用sleep函数的常见方法详解” 的完整攻略。 什么是sleep函数? 在JavaScript中,本质上并没有自带的sleep函数。它是一种同步执行的函数,能够在程序执行到该函数时阻塞线程一段时间,然后再继续执行。 常见的sleep实现方法 在JavaScript中实现sleep函数的方法有很多,这里介绍两个常见…

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