在JavaScript中我可以调用对象,例如; String
,Number
和Boolean
以两种不同的方式,一种作为标准函数调用,另一种作为构造函数。
示例
// 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);
答案 0 :(得分:1)
String
,Bolean
和Number
,没有区别,因为内部它们会解析为构造函数调用。它们是用javascript解释器编写的语言定义的(大部分时间是c ++),所以它们与通常的javascript对象/函数/构造函数不同,即使它们的行为与它们相似。