0

在代码中:

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

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

Foo.someMethod();

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

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

4

1 回答 1

3

你这样做的方式,

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();
于 2013-10-14T22:04:14.173 回答