每类在MDN
类实际上是&"特殊函数&";
class Foo {
constructor(x) {
this.x = x;
}
foo() {}
}
翻译成function
(忽略"提升")特性)
// declare the "class"
function Foo (x) {
this.x = x;
}
// declare the instance method
Foo.prototype.foo = function () {
return 'i am foo';
}
// create an instance
const f = new Foo(42);
// invoke its methods
console.log(f.foo()); // 'i am foo'
// access its properties
console.log(f.x); // 42
非提升,(基于类语法的构造函数函数没有被提升,)由于立即调用的函数表达式(IIFE)作为模块模式…
const Foo = (function () { // class Foo {
//
function Foo(x) { // constructor(x) {
this.x = x; // this.x = x;
} // }
function foo() { // foo() {
} //
Foo.prototype.foo = foo; // }
//
return Foo; //
//
}()); // }
其实一切都是对象——一个类只是一个对象的蓝图,它有一些方法和一些值。它是所有具有可以存储值或转换值的特性的对象。
类是什么——函数做什么。把它称为一个特殊的函数,往好里说是不必要的,往坏里说是令人困惑的。
基本上——不用担心。