makeWorker
是一種多餘這裏如果a()
被稱爲無this
無論如何,讓我們用它做什麼代替調用makeWorker
:
function a() {
this.ename = "Pete";
var work = function() {
console.log(this);
console.log(this.ename);
};
work();
}
var ename = "John";
a();
,代之以調用work
它做什麼:
function a() {
this.ename = "Pete";
console.log(this);
console.log(this.ename);
}
var ename = "John";
a();
and replac E中的呼叫a
用它做什麼,再假設this
是全局對象:
var ename = "John";
this.ename = "Pete";
console.log(this);
console.log(this.ename);
所以您將全局ename
到"John"
,然後將其設置爲"Pete"
,然後打印出來,其結果是"Pete"
。沒有什麼奇怪的。它可以幫助你時,每項任務在原來的代碼恰好記錄了一句:
function a() {
function makeWorker() {
console.log("Setting ename to Pete");
this.ename = "Pete";
return function() {
console.log(this.ename);
};
}
var work = makeWorker();
work();
}
console.log("Setting ename to John");
var ename = "John";
a();
@MiHawk:這裏的升降機在哪裏起作用? – Ryan