このコードを見てください:
var args;
function foo(){
args = arguments;
}
foo();
console.log(args); // []
args.callee(); // foo
コンソールに引数オブジェクトのプロパティまたはメソッドが表示されないのに、呼び出し先メソッドを呼び出すことができないのはなぜですか?
このコードを見てください:
var args;
function foo(){
args = arguments;
}
foo();
console.log(args); // []
args.callee(); // foo
コンソールに引数オブジェクトのプロパティまたはメソッドが表示されないのに、呼び出し先メソッドを呼び出すことができないのはなぜですか?
foo引数を渡していません。また、calleeプロパティは「列挙不可能」です。
免責事項: これは、Chrome または Firebug コンソールを使用していることを前提としています。標準はありません。そのため、カスタム コンソールはファンキーなことを行う可能性があります。
console.log配列のような*オブジェクトを「プレーンな」オブジェクトとは異なる方法で表示するために使用したためです。オブジェクトのプロパティを表示するには、 を使用しますconsole.dir。
* 配列のようにするには、オブジェクトにlengthプロパティとsplice関数、またはその他のいくつかのニッチな条件が必要です。