JS对象创建与继承的汇总梳理

yizhihongxing

让我来为你详细讲解JavaScript对象创建与继承的相关知识,包含以下几个方面:

  1. 对象的创建方式
  2. 原型与原型链
  3. 构造函数与类的继承
  4. ES6中的class关键字

1. 对象的创建方式

对象字面量

对象字面量是创建对象的一种简单方式,通过使用{}标记来生成对应的对象。例如:

var person = {
  name: "张三",
  age: 18,
  sayHello: function() {
    console.log("Hello, world!");
  }
};

构造函数

构造函数可以使用关键字new来实例化一个对象。例如:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log("Hello, world!");
  };
}

var person = new Person("张三", 18);

Object.create

Object.create(proto, [propertiesObject])方法可以创建一个指定原型和属性的对象。例如:

var person = {
  name: "张三",
  age: 18
};

var student = Object.create(person, {
  gender: {
    value: "男"
  }
});

2. 原型与原型链

Javascript中的对象是通过原型链实现继承的,每一个对象都有一个[[Prototype]]属性,它指向原型对象,原型对象中也有一个[[Prototype]]属性,指向其父级原型对象,也就是原型链。

原型

对象的原型可以通过Object.getPrototypeOf(object)获取。例如:

var person = {
  name: "张三",
  age: 18
};

var student = {
  gender: "男"
};

Object.setPrototypeOf(student, person);

console.log(Object.getPrototypeOf(student));
// 输出: {name: "张三", age: 18}

原型链

原型链是由多个原型对象组成的链式结构,通过__proto__属性指向父级原型对象。例如:

var person = {
  name: "张三",
  age: 18
};

var student = {
  gender: "男",
  __proto__: person
};

console.log(student.name); // 输出: 张三

3. 构造函数与类的继承

构造函数可以通过callapply方法来继承父级构造函数的属性与方法。例如:

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

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

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;
  }
}

4. ES6中的class关键字

ES6中的class关键字可以更加简洁明了地创建对象和继承。例如:

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

  sayHello() {
    console.log("Hello, world!");
  }
}

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

let person = new Person("张三", 18);
let student = new Student("李四", 20, "大三");

以上就是关于JavaScript对象创建与继承的汇总梳理,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS对象创建与继承的汇总梳理 - Python技术站

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

相关文章

  • 让你5分钟掌握9个JavaScript小技巧

    下面我就来详细讲解“让你5分钟掌握9个JavaScript小技巧”的完整攻略。 1. 变量值交换 有一种交换变量值的另类写法,可以用解构赋值完成: let a = 1; let b = 2; [a, b] = [b, a]; console.log(a) //输出2 console.log(b) //输出1 2. 使用扩展运算符复制数组 扩展运算符(spre…

    JavaScript 2023年5月17日
    00
  • 转换字符串为json对象的方法详解

    当我们从外部获取到一个字符串,而这个字符串是符合json格式的,那么这个时候我们需要将这个字符串转换成json对象,方便我们在程序中处理数据。 下面是几种常见的将字符串转换为json对象的方法: 使用JSON.parse(string) JSON.parse() 是 JavaScript 中的一个内置函数,可以将一个符合 JSON 格式的字符串转化为 JSO…

    JavaScript 2023年5月27日
    00
  • js实现获取两个日期之间所有日期的方法

    首先,我们可以利用 JavaScript 中的 Date 对象来进行日期计算和格式化,从而实现获取两个日期之间所有日期的方法。以下是实现方法的步骤: 定义一个函数,接收两个参数,表示开始日期(start)和结束日期(end)。 利用 Date.parse() 方法将日期字符串转换为时间戳,方便后面的计算。 利用 Math.abs() 方法求出两个日期之间的毫…

    JavaScript 2023年5月27日
    00
  • javascript 验证日期的函数

    我们来详细讲解一下如何利用 JavaScript 编写验证日期的函数。 函数基本结构 一个基本的 JavaScript 验证日期的函数应该具有以下结构: function validateDate(input){ // 对传入的参数 input 进行验证 // 如果符合日期格式,则返回 true,否则返回 false return true; // 或者 f…

    JavaScript 2023年5月27日
    00
  • Vue实现调用PC端摄像头实时拍照

    下面我来详细讲解一下Vue实现调用PC端摄像头实时拍照的完整攻略。 1. 获取用户的设备权限和相机设备 在Vue中将调用PC端摄像头分为两步,首先是获取用户的设备权限和相机设备。 //获取用户媒体设备(摄像头) if (navigator.mediaDevices.getUserMedia) { navigator.mediaDevices.getUserM…

    JavaScript 2023年6月11日
    00
  • JS获取url参数,JS发送json格式的POST请求方法

    JS获取url参数: 在JavaScript中获取url参数可以使用location对象的search属性或URLSearchParams API。 使用search属性: // 获取url参数 const urlParams = new URLSearchParams(window.location.search); // 获取具体参数 const id …

    JavaScript 2023年5月27日
    00
  • Microsoft Flow | 微信 | LDP 整合开发

    我们在使用自己的企业应用平台时,经常会遇到以下场景: 场景1 业务系统的通知太多,希望收到通知时同步发送企业微信来随时查看。 场景2 需要和其他ERP、BI、CRM等系统对接。 通常的解决方案是自行开发一套程序来实现平台到微信的同步功能。 如果这样做,我们就需要域名空间,要学会搭建web服务器,要github备份维护代码,要当心漏洞被攻击,要编写复杂的代码。…

    JavaScript 2023年4月18日
    00
  • 微信小程序表单验证form提交错误提示效果

    下面将详细讲解“微信小程序表单验证form提交错误提示效果”的完整攻略。 什么是微信小程序表单验证 表单验证是网站开发中的重要一环,目的是为了让用户在填写表单时能够及时的发现并纠正错误,保证数据的准确性。同样,微信小程序中也需要进行表单验证。 微信小程序表单验证的原理与网站表单验证类似,即使用户在填写表单时有错误输入,也应该及时给予提示,防止用户在数据提交时…

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