0
var Foo = (function () {

    var cls = function () {
        this.prototype = {
            sayhi: function () {
                alert('hi');
            }
        };
    };

    cls.staticMethod = function () {};

    return cls;

})();

var f = new Foo();

sayhiメソッドにアクセスできないのはなぜですか? 変数thisを参照していませんか?cls

4

1 に答える 1

1

のすべてのインスタンスprototypeプロパティを設定しようとしています。実際にやりたいことは、それ自体のプロパティを設定することです:clsprototypecls

var Foo = (function () {

    var cls = function () {}; // Constructor function

    cls.prototype = { // Prototype of constructor is inherited by instances
        sayhi: function () {
            alert('hi');
        }
    };

    return cls;

})();
于 2013-03-28T09:40:07.023 に答える