それは次のように私は、新しいオブジェクトを宣言:なぜこのオブジェクトを関数で使用するとJavascript TypeError(undefined)が発生しますか?
function node(){
this.tag = null;
this.Tdata = [];
this.Tchilds = [];
}
私は関数の中で、このオブジェクトを使用したい:
function Check(root /*I want to use root as type node*/) {
for(var i = 0; i < root.Tdata.length; i++){
if(root.Tdata[i] == -1)
arg++;
}
}
ブラウザは言う:TypeError: root.Tdata is undefined
私は変数を宣言する場合(関数のスコープの外)var root = new node();
&私はroot.Tdata[]
を使用してすべて正常に動作します。
どうすればこのオブジェクトを関数で使用できますか?
EDIT:
私は、関数呼び出し時:
var rootExt = new node();
rootExt.Tdata[0] = -1;
rootExt.Tchilds[0] = -1;
Check(rootExt);
どのように 'Check'関数を呼び出していますか?私はあなたのコードを次のようにテストしました: 'Check(new node());'そして期待どおりに動作します。 – maddockst
新しい演算子に関するドキュメントを読むべきです。[here](https://developer.mozilla.org/en/US/docs/Web/JavaScript/Reference/Operators/new) – puemos
オブジェクトを関数に渡す必要があります'Check(new node());' –