例如:嵌入功能問題
//global vars
var g1,g2,g3;
function a(p1,p2,p3){
//local vars
var a1,a2,a3;
return function(){
//an embed function, looks like dynamic defined at runtime
}
}
var f1 = a(1,2,3)
var f2 = a(4,5,6)
f1()
f2()
我的問題是,是F1和F2指向內存中相同的代碼,所以才接縫不同勢函數?每次打電話時是否花費時間創建嵌入功能?在執行完GC之後,GC的返回嵌入函數必須是GC,返回的嵌入函數的原因仍然可以調用函數a的局部變量。
JavaScript中沒有編譯。函數聲明也在運行時進行評估。區別在於它們在當前執行上下文中的任何其他語句之前被評估。 – 2010-12-18 17:34:52
@Sime沒有在javascript中編譯,合理,但如何解釋f1和f2是不同的功能。 – 2010-12-18 17:53:21
@Sime yea,大多數情況下我稱之爲編譯時; @guilin因爲'function()'表達式在每次調用時都會創建一個新函數。 – 2010-12-18 17:58:40