【问题标题】:JavaScript: function call vs constructor function [duplicate]JavaScript:函数调用与构造函数[重复]
【发布时间】:2014-01-29 10:49:32
【问题描述】:

例如,在 JavaScript 中,我可以调用对象; StringNumberBoolean 有两种不同的方式,一种作为标准函数调用,另一种作为构造函数。

示例

// Call String as a standard function call.
var a = String("Hello World");
// a = "Hello World";

// Call String as a constructor function.
var b = new String("Hello World");
// b = String {0: "H", 1: "e", 2: "l", 3: "l", 4: "o", 5: " ", 6: "W", 7: "o", 8: "r", 9: "l", 10: "d"}

比如说我现在正在设计自己的对象; Foo

var Foo = (function () {
    function Foo(value) {
        // Construct a foo object
    }
    return Foo;
})();

// Test
var foo = new Foo();

好的,所以我可以将Foo 作为构造函数调用,但是我如何将Foo 实现为标准函数调用,就像这样

var foo = Foo(myValue);

【问题讨论】:

    标签: javascript function oop constructor


    【解决方案1】:

    对于StringBoleanNumber 没有区别,因为它们在内部解析为构造函数调用。它们是用编写 javascript 解释器的语言定义的(大部分时间是 c++),因此它们与通常的 javascript 对象/函数/构造函数不同,即使它们的行为类似于它们。

    【讨论】:

      猜你喜欢
      • 2018-10-17
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 2021-10-20
      • 2013-09-06
      • 1970-01-01
      • 2013-08-29
      相关资源
      最近更新 更多