なぜA
本当でB
間違っているのか誰かが私に説明できますか?私はBも真であると思っていたでしょう。
function MyObject() {
};
MyObject.prototype.test = function () {
console.log("A", this instanceof MyObject);
(function () {
console.log("B", this instanceof MyObject);
}());
}
new MyObject().test();
更新:ecmascript-6以降、次のようにMyObjectを簡単に参照できるようにする矢印関数を使用できます。
function MyObject() {
};
MyObject.prototype.test = function () {
console.log("A", this instanceof MyObject);
(() => {//a change is here, which will have the effect of the next line resulting in true
console.log("B", this instanceof MyObject);
})(); //and here is a change
}
new MyObject().test();