我有以下源代碼。爲什麼這個變量還活着?
testObj = {}
function testFun()
{
this.name = "hi";
}
function test() {
var instanceOfTestFun = new testFun();
testObj.pointerToFun = instanceOfTestFun;
instanceOfTestFun = null;
console.log(testObj);
}
$(document).ready(test);
我期望看到 '空' 爲testObj的控制檯輸出,但我看到testFun功能。我認爲JavaScript使用'通過ref'的對象。
...請告訴我...
這不是通過引用意味着什麼。 – SLaks
'instanceOfTestFun = null;' - 這會刪除對象的引用,而不是對象本身。該對象仍由另一個引用 - 「testObj.pointerToFun」引用 - 因此不會被垃圾收集。 –
*「我希望看到'空'...,但我看到testFun函數」*你呢?你不應該看到*任何*功能。 – RightSaidFred