JS之构造函数

    科技2022-08-08  100

    上一段代码很容易让人认为 Foo 是一个构造函数,因为我们使用 new 来调用它并且看到它 “构造”了一个对象。 实际上,Foo 和你程序中的其他函数没有任何区别。函数本身并不是构造函数,然而,当 你在普通的函数调用前面加上 new 关键字之后,就会把这个函数调用变成一个“构造函数 调用”。实际上,new 会劫持所有普通函数并用构造对象的形式来调用它。 举例来说: function NothingSpecial() { console.log( "Don't mind me!" ); } var a = new NothingSpecial(); // "Don't mind me!" a; // {} NothingSpecial 只是一个普通的函数,但是使用 new 调用时,它就会构造一个对象并赋值 给 a,这看起来像是 new 的一个副作用(无论如何都会构造一个对象)。这个调用是一个构 造函数调用,但是 NothingSpecial 本身并不是一个构造函数。 换句话说,在 JavaScript 中对于“构造函数”最准确的解释是,所有带 new 的函数调用。 函数不是构造函数,但是当且仅当使用 new 时,函数调用会变成“构造函数调用”。

    new 会劫持所有普通函数并用构造对象的形式来调用它

    Processed: 0.015, SQL: 8