ハッシュ「h」があり、次のようなコードがあります。
h[key].dostuff()
キーがハッシュに存在しない場合、h[key] は未定義であり、未定義のメソッド 'dostuff' を呼び出すことができないというエラーが表示されます。
未定義が拡張可能なクラスである場合、このメソッドを未定義に追加する方法はありますか?
これは一般的なケースであるに違いないので、未定義の結果を操作できる hh(key) などの回避策関数に頼らずにこれを処理する好ましい方法はありますか?
ありがとう。
ハッシュ「h」があり、次のようなコードがあります。
h[key].dostuff()
キーがハッシュに存在しない場合、h[key] は未定義であり、未定義のメソッド 'dostuff' を呼び出すことができないというエラーが表示されます。
未定義が拡張可能なクラスである場合、このメソッドを未定義に追加する方法はありますか?
これは一般的なケースであるに違いないので、未定義の結果を操作できる hh(key) などの回避策関数に頼らずにこれを処理する好ましい方法はありますか?
ありがとう。
あなたはいつでも次のようなことをすることができます:
h.get = function(key) {
if(this.hasOwnProperty(key))
return this[key];
//here return a default object, whatever that would be
return {doStuff: function() {
//default doStuff function
}};
};
h.get(key).doStuff();
少し強制的な解決策であることは知っていますが、デフォルトの動作を何らかの方法で模倣できます。