是否可以在没有构造函数参数的情况下实例化空对象/对象

Is it possible to instantiate empty object/object without parameters from constructor?

本文关键字:对象 情况下 实例化 参数 构造函数 是否      更新时间:2023-09-26

在代码中:

function Foo() {
    this.someMethod = function() {
        console.log("property");
    };
}

是否可以实例化空的Foo对象,并对其调用someMethod?喜欢:

Foo.someMethod();

我得到了TypeError,这意味着没有。

好的,接下来,我可以定义默认方法,就像 PHP 中的 __construct 一样,在对象实例化时执行一些代码,或者更好的是让该函数的评估成为对象内的一些属性值,所以即使我实例化"空"对象,该函数也会在新对象实例化时设置一些值。

你这样做的方式,

var fooObj = new Foo(); 
fooObj.someMethod();

将正常工作。


您也可以尝试这样做:

var Foo = (function(){
    function Foo() {
        // Foo constructor
    }
    Foo.prototype.someMethod = function(){
        // public Foo function
    };
    var somePrivateFunction = function(){
        // private Foo function
    };
    return Foo;
})();
var fooObj = new Foo();
相关文章: