From 01b0e12ba27b5069248fd09235e9a7143915ee30 Mon Sep 17 00:00:00 2001 From: Irvin Date: Wed, 16 Feb 2022 02:02:49 +0800 Subject: remove `notranslate` class in zh-CN --- .../web/javascript/reference/classes/index.html | 36 +++++++++++----------- 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'files/zh-cn/web/javascript/reference/classes/index.html') diff --git a/files/zh-cn/web/javascript/reference/classes/index.html b/files/zh-cn/web/javascript/reference/classes/index.html index 3b0c5f408f..55bc4d0937 100644 --- a/files/zh-cn/web/javascript/reference/classes/index.html +++ b/files/zh-cn/web/javascript/reference/classes/index.html @@ -26,7 +26,7 @@ translation_of: Web/JavaScript/Reference/Classes

定义类的一种方法是使用类声明。要声明一个类,你可以使用带有class关键字的类名(这里是“Rectangle”)。

-
class Rectangle {
+
class Rectangle {
   constructor(height, width) {
     this.height = height;
     this.width = width;
@@ -37,7 +37,7 @@ translation_of: Web/JavaScript/Reference/Classes
 
 

函数声明类声明之间的一个重要区别在于, 函数声明会{{Glossary("Hoisting", "提升")}},类声明不会。你首先需要声明你的类,然后再访问它,否则类似以下的代码将抛出{{jsxref("ReferenceError")}}:

-
let p = new Rectangle(); // ReferenceError
+
let p = new Rectangle(); // ReferenceError
 
 class Rectangle {}
 
@@ -46,7 +46,7 @@ class Rectangle {}

类表达式是定义类的另一种方法。类表达式可以命名或不命名。命名类表达式的名称是该类体的局部名称。(不过,可以通过类的(而不是一个实例的) {{jsxref("Function.name", "name")}} 属性来检索它)。

-
// 未命名/匿名类
+
// 未命名/匿名类
 let Rectangle = class {
   constructor(height, width) {
     this.height = height;
@@ -88,7 +88,7 @@ console.log(Rectangle.name);
 
 

参见方法定义

-
class Rectangle {
+
class Rectangle {
     // constructor
     constructor(height, width) {
         this.height = height;
@@ -113,7 +113,7 @@ console.log(square.area);
 
 

static 关键字用来定义一个类的一个静态方法。调用静态方法不需要实例化该类,但不能通过一个类实例调用静态方法。静态方法通常用于为一个应用程序创建工具函数。

-
class Point {
+
class Point {
     constructor(x, y) {
         this.x = x;
         this.y = y;
@@ -145,7 +145,7 @@ console.log(Point.distance(p1, p2));
 
 

当调用静态或原型方法时没有指定 this 的值,那么方法内的 this 值将被置为 undefined。即使你未设置 "use strict" ,因为 class 体内部的代码总是在严格模式下执行。

-
class Animal {
+
class Animal {
   speak() {
     return this;
   }
@@ -167,7 +167,7 @@ eat(); // undefined

严格模式下不会发生自动装箱,this 值将保留传入状态。

-
function Animal() { }
+
function Animal() { }
 
 Animal.prototype.speak = function() {
   return this;
@@ -189,7 +189,7 @@ eat(); // global object
 
 

实例的属性必须定义在类的方法里:

-
class Rectangle {
+
class Rectangle {
   constructor(height, width) {
     this.height = height;
     this.width = width;
@@ -199,7 +199,7 @@ eat(); // global object
 
 

静态的或原型的数据属性必须定义在类定义的外面。

-
Rectangle.staticWidth = 20;
+
Rectangle.staticWidth = 20;
 Rectangle.prototype.prototypeWidth = 25;
 
@@ -213,7 +213,7 @@ Rectangle.prototype.prototypeWidth = 25;

使用JavaScript字段声明语法,上面的示例可以写成:

-
class Rectangle {
+
class Rectangle {
   height = 0;
   width;
   constructor(height, width) {
@@ -231,7 +231,7 @@ Rectangle.prototype.prototypeWidth = 25;
 
 

使用私有字段,可以按以下方式细化定义。

-
class Rectangle {
+
class Rectangle {
   #height = 0;
   #width;
   constructor(height, width) {
@@ -255,7 +255,7 @@ Rectangle.prototype.prototypeWidth = 25;
 
 

extends 关键字在 类声明 或 类表达式 中用于创建一个类作为另一个类的一个子类。

-
class Animal {
+
class Animal {
   constructor(name) {
     this.name = name;
   }
@@ -283,7 +283,7 @@ d.speak();// 'Mitzie barks.'
 
 

也可以继承传统的基于函数的“类”:

-
function Animal (name) {
+
function Animal (name) {
   this.name = name;
 }
 Animal.prototype.speak = function () {
@@ -302,7 +302,7 @@ d.speak();//Mitzie makes a noise.  Mitzie barks.

请注意,类不能继承常规对象(不可构造的)。如果要继承常规对象,可以改用{{jsxref("Object.setPrototypeOf()")}}:

-
var Animal = {
+
var Animal = {
   speak() {
     console.log(this.name + ' makes a noise.');
   }
@@ -325,7 +325,7 @@ d.speak(); // Mitzie makes a noise.

例如,当使用像{{jsxref("Array.map", "map()")}}返回默认构造函数的方法时,您希望这些方法返回一个父Array对象,而不是MyArray对象。{{jsxref("Symbol.species")}} 符号可以让你这样做:

-
class MyArray extends Array {
+
class MyArray extends Array {
   // Overwrite species to the parent Array constructor
   static get [Symbol.species]() { return Array; }
 }
@@ -342,7 +342,7 @@ console.log(mapped instanceof Array);
 
 

super 关键字用于调用对象的父对象上的函数。

-
class Cat {
+
class Cat {
   constructor(name) {
     this.name = name;
   }
@@ -366,7 +366,7 @@ class Lion extends Cat {
 
 

一个以超类作为输入的函数和一个继承该超类的子类作为输出可以用于在ECMAScript中实现混合:

-
var calculatorMixin = Base => class extends Base {
+
var calculatorMixin = Base => class extends Base {
   calc() { }
 };
 
@@ -376,7 +376,7 @@ var randomizerMixin = Base => class extends Base {
 
 

使用 mix-ins 的类可以像下面这样写:

-
class Foo { }
+
class Foo { }
 class Bar extends calculatorMixin(randomizerMixin(Foo)) { }

规范

-- cgit v1.2.3-54-g00ecf