JavaScriptで本当に新しいです。次のJavaScriptコードの出力が何であるべきか説明してください。その理由をできるだけ詳しく説明してください。どうもありがとうございます。次のjavascriptコードの出力は何ですか?その理由は何ですか?
var Foo = function(a) {
function bar() {
return a;
}
this.baz = function() {
return a;
};
};
Foo.prototype = {
biz: function() {
return a;
}
};
var f = new Foo(7);
f.bar();
f.baz();
f.biz();
結果はエラーです。 f.barは関数ではありません。これは、Foo関数内でのみスコープを持つローカル関数であるためです。 'baz'は' new Foo() 'を実行するときに構築されたオブジェクトの一部であるため、利用可能です。 'f.biz()'は、Fooのプロトタイプに置かれているため、Fooのすべてのインスタンス(fはそれらのうちの1つ)によって共有されるため、使用できます。 – rasmeister
'a'がそのスコープで定義されていないため、' f.baz'は 'a'(' 7')の値を返しますが 'foo.biz'は' undefined'を返します。 –