私はjavascriptを初めて使用しています。なぜこのコードは返されますか?
const foo = {
bar: function() { return this.baz; },
baz: 1,
};
console.log((function() {
return typeof arguments[0]();
})(foo.bar));
私はjavascriptを初めて使用しています。なぜこのコードは返されますか?
const foo = {
bar: function() { return this.baz; },
baz: 1,
};
console.log((function() {
return typeof arguments[0]();
})(foo.bar));
number
の返答が期待される場合は、コードから返すことはできません。 これはこのキーワードの誤解です(@Tushar @Bergiによって指摘されているように)
次のコードはそうしています。
function Foo(){
this.baz = 1;
};
Foo.prototype.bar = function() {
"use strict";
return this.baz;
}
var foo = new Foo();
console.log((function() {
"use strict";
return typeof arguments[0];
})(foo.bar()));
このコードはどこにありますか?そのIIFEと 'arguments [0]'のことは、不必要に複雑で、あなたの質問とは無関係です。 – Bergi
引数[0]()を実行しているとき、 'this'は呼び出されたコンテキストを参照します。この場合、' window'と 'window'は' baz'というプロパティを持たないでしょう – JohanP
@タシャーありますか?自由に再オープンして回答してください。しかし、唯一の/主要な問題は['this'キーワード]の誤解です(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this) – Bergi