本文共 2468 字,大约阅读时间需要 8 分钟。
作为 JavaScript 开发者,我们在编写代码时会经常接触到类(class)的概念以及严格模式(strict mode)的相关知识。本文将详细介绍这两个核心概念,并探讨它们对代码编写和执行的影响。
类是 JavaScript 中用于创建对象的模板,它通过 class 关键字定义。类似于其他编程语言中的类,类可以包含属性和方法,用以描述对象的特性和行为。以下是一个基本的例子:
class Point { constructor(name, val) { this.name = name; this.age = "18"; this.val = val; this.setData(val); } eat() { console.log(`我叫${this.name}`); }}var t = new Point("李现", "诸葛大力");console.log(t.name); // 输出:李现t.eat(); // 输出:我叫李现 在这个例子中,Point 类定义了一个对象的模板。每当我们使用 new Point 命名时,就会创建一个新的对象实例 t。通过 constructor 方法,我们定义了实例的属性和初始值。
在 JavaScript 中,我们可以通过两种方式设置和保存数据:直接赋值和使用getter/setter 方法。以下是具体示例:
class Point { constructor(name, val) { this.name = name; this.age = "18"; this.val = val; } eat() { console.log(`我叫${this.name}`); } // 写法一:使用 getter 和 setter get prop() { console.log(`我的值是${value}`); } prop1 = "哈哈"; // 写法二:自定义数据处理方法 setData(value) { this.val = value; console.log(this.val); } getData() { return this.val; }}var t = new Point("李现", "诸葛大力");t.prop = 1234; // 输出:1234t.setData("我是新来的"); // 输出:我是新来的console.log(t.getData()); // 输出:我是新来的 这种写法使得对象的属性更加可读和维护友好。
属性表达式是 JavaScript 中一种简洁的方式来为对象定义可读且 обратисим的属性。与传统的 getter 和 setter不同,属性表达式可以直接在类定义时定义。
class Person { constructor(sex) { this.sex = sex; this.hobby = "女"; } shopping() { console.log("天生会逛街"); }}let p = new Person();p.shopping(); // 输出:天生会逛街// 属性表达式改写:const shopping = "shop";[shopping] = class Person { shopping() { console.log("一个省钱的春节"); }}();let person = new Person();person.shop(); // 输出:一个省钱的春节 这种写法可以显著简化代码,同时保持可读性。
类表达式是类的另一种定义方式,它允许类在表达式中使用。这在某些情况下非常有用,例如模块内的类定义。
const MyClass = class Me { // 在 class Me 中,可以使用 Me 作为引用 static method() { console.log(Me.name); }};// 外部使用 MyClass 来访问类MyClass.method(); // 输出:未定义 Me.name 类表达式是一个更灵活的选择,适用于特定场景。
严格模式是 JavaScript 中的一个重要的编程模式,它通过 use strict 关键字开启。在 strict 模式下,某些动作会被限制或抛出错误。以下是 strict 模式的特点:
delete)可能会抛出错误。} 结束。delete 操作符将抛出错误。delete。this 引指当前 window 对象。arguments 对象与函数参数的值独立。通过以上知识,我们可以更好地理解和使用 JavaScript 的类和严格模式。在实际开发中,合理地使用这些概念可以使代码更加规范和可维护。
转载地址:http://bawiz.baihongyu.com/