您当前的位置:首页 > 计算机 > 编程开发 > JavaScript

JavaScript 中的静态属性和函数

时间:12-14来源:作者:点击数:
城东书院 www.cdsy.xyz

在 ES6 类 中, static 关键字允许您在类本身上定义一个函数,而不是类的实例。

class MyClass {
  static myFunction() {
    return 42;
  }
}

typeof MyClass.myFunction; // 'function'
MyClass.myFunction(); // 42

// `myFunction()` is a function on `MyClass`, **not**
// instances of `MyClass`
const obj = new MyClass();
obj.myFunction; // undefined

在 JavaScript 中,类是和其他对象一样的对象。 因此,静态允许您在类定义中定义类上的函数。 等效地,您可以将一个函数分配给 MyClass

class MyClass {}
MyClass.myFunction = function() {
  return 42;
};

MyClass.myFunction(); // 42

this

在静态函数中, this 指类。

class MyClass {
  static myFunction() {
    return this;
  }
}

MyClass.myFunction() === MyClass; // true

静态属性

静态属性,也称为类字段 ,目前是 TC39 的第 3 阶段提案 ,这意味着它们在技术上还不是 JavaScript 语言的一部分。 但是,它们在较新版本的 Google Chrome 中受支持。

class MyClass {
  static answer = 42;
}

MyClass.answer; // 42

使用具有非原始值的静态属性时要小心。 如果您将 继承与非原始静态属性一起 ,则从您的类继承的每个类都将具有该对象的相同副本。

class MyClass {
  static val = new Object();
}

class MyChildClass extends MyClass {}

MyChildClass.val === MyClass.val; // true
城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐