如何在JavaScript中将类表示为函数



每类在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;                 //
//
}());                         //  }

其实一切都是对象——一个类只是一个对象的蓝图,它有一些方法和一些值。它是所有具有可以存储值或转换值的特性的对象。

类是什么——函数做什么。把它称为一个特殊的函数,往好里说是不必要的,往坏里说是令人困惑的。

基本上——不用担心。

相关内容

  • 没有找到相关文章

最新更新