0
MyClass = function() {
    var init = function() {
        console.log("Initializing");
    }
    this.init();
}
var myInstance = new MyClass();

上記を実行すると、

TypeError: オブジェクト [object Object] にはメソッド 'init' がありません

4

2 に答える 2

4

コンストラクターのスコープ内のローカル変数は、インスタンスのプロパティにはなりません。

の代わりにvar init = function...;this.init = function...;

于 2012-04-14T05:21:54.380 に答える
3

これは、オブジェクトのプロパティではなく、またはローカル変数initとして宣言するためです。varそのためinit、オブジェクトのメンバー関数にはなりません。これが、コードが期待どおりに実行されなかった理由です。this.init = function() {期待される動作を実現するために、代わりに初期化してください。

http://jsfiddle.net/Y2Rvq/

于 2012-04-14T05:22:11.210 に答える