39

含まれているスクリプトで次のコマンドを実行すると、エラーが発生します。しかし、Google Chrome コンソールからコマンドを実行すると、正しく動作します。

var a = {};
console.log(keys(a));

エラー:

 Uncaught ReferenceError: keys is not defined 

何が起きてる?keys含まれているスクリプトで関数を使用するにはどうすればよいですか?

4

2 に答える 2

46
console.log(keys(a))

keys()コードで使用するためにブラウザーによって提供される関数ではありません。あなたはおそらくしたいですObject.keys()

a = {};
console.log(Object.keys(a));

コンソールには、デバッグを容易にするために、実際のコードでは使用できない追加機能が公開されている場合があります。keys()1つのように聞こえ、copy('some text')別のものです。

悲しいことに、それらをリストするリンクが見つかりません。しかし、これら2つの機能以外にもあると確信しています。

于 2012-12-06T19:39:13.923 に答える
1

このようなエラーが発生するたびに、未定義として報告されている関数/変数の定義を検索してみてください。定義されている場合、これが機能していない可能性がある理由を探してみてください。keys関数がObjectコンストラクターの一部であることをご存知ですか? 独立した関数であるかのように呼び出すことはできません。ただし、これを行う習慣がある場合は、これを許可する独自の関数を作成してみてください。

function key( object ) {

    return Object.keys( object );

}

このような定義が与えられた場合、コードは合格するはずです。

于 2012-12-06T19:42:22.437 に答える