2016-05-13 16 views
-1

gameIは、以下の「クラス」を作成しました:オブジェクトを機能させる。 JavaScriptの

function State(){ 
    this.board = []; 
    for (i=0; i< 9; i++){ 
     var row = []; 
     for (j=0; j< 9; j++){ 
     row.push(0); 
     } 
     this.board.push(row); 
    } 
} 

それはnextEmptyCellと呼ばれる方法があります。

State.prototype.nextEmptyCell = function(){ 
    ... 
} 

私は、このクラスのインスタンスを作成し、別の関数に渡されました。次の行に

game = new State(); 
function solveSudoku(game){ 
    var next = game.nextEmptyCell(); 
    ... 
} 

"Uncaught TypeError: Cannot read property 'nextEmptyCell' of undefined".

「ゲーム」は未定義とどのようにこのエラーを修正することですなぜ私は理解していない:var next = game.nextEmptyCell();私はというエラーを受け取ります。 フルコードへのリンク:jsfiddle.net/py6kv7ps/5

P.S. JSをOOPとして使用するより良い方法はありますか?

+2

がいることを、' VAR次= game.nextEmptyCell()ことになっていますか? (つまり、「状態」の代わりに「ゲーム」です。) –

+0

はい、申し訳ありません。私は間違いをして質問を打ちました。これはgame.nextEmptyCell()であるはずです。しかし、それは問題ではありません。 – Yhlas

+0

@Yhlas次回はjsfiddleでコードを渡します。 – 7urkm3n

答えて

1

問題は、引数を渡さずに再帰的にそれを呼び出しているsolveSudoku()から来ているメソッド内でゲームの正しい値を使用するようにメソッド呼び出しに渡すことができます。それはなぜあなたが間違っているのですか? `;

"Uncaught TypeError: Cannot read property 'nextEmptyCell' of undefined".

function solveSudoku(game) { 
     if (solveSudoku(ADD game OBJECT HERE)) { 
     return game; 
     } 
} 
+0

ありがとうございました! – Yhlas

0

おそらくgame.nextEmptyCell()であり、state.nextEmptyCell()ではありません。投稿したコードのどこにでもstateという名前の変数はありません。

0

これはパラメータgameが同じ名前のglbal変数gameを陰にしているためです。グローバル変数game = new State();は正しい値を持っています。だから、solveSudoku()

function State(){ 
 
    this.board = []; 
 
    
 
    for (i=0; i< 9; i++){ 
 
     var row = []; 
 
     for (j=0; j< 9; j++){ 
 
     row.push(0); 
 
     } 
 
     this.board.push(row); 
 
    } 
 
} 
 

 
State.prototype.nextEmptyCell = function(){ 
 
    console.log('egvse gtrs'); 
 
    document.write('egvse gtrs'); 
 
}; 
 

 
var game = new State(); 
 
function solveSudoku(game){ 
 
    var next = game.nextEmptyCell(); 
 
} 
 

 
solveSudoku(game);

+0

このコードは明確に機能しています。しかし、私が完全なコードで全く同じことをしても、以前と同じエラーが表示されます。 – Yhlas

+0

コード内でメソッドをどのように呼び出すのですか? –

+0

https://jsfiddle.net/py6kv7ps/5/ – Yhlas

関連する問題