function func1(str) {
eval(str);
newVar = 100;
function func2() {
console.log(bar);
console.log(newVar);
}
func2();
}
func1("bar = 42;");
içinde ben (kod yavaş çalışan sonuçlanır) sözcük kapsamını hile çünkü eval() anahtar kelime kaçınarak gerektiğini okudum gelmez tam olarak nasıl. Yukarıdaki örnek bağlamda (veya başka herhangi bir örnek var), ne tür bir derleyici optimizasyonunun kırılmaya başladığını anlamaya çalışıyorum.eval() anahtar kelime molası derleyici optimizasyonlar javascript
Satıra bakarak newVar = 100; Bu değişken de yürütme aşamasında motor (global kapsamda) tarafından oluşturulacaktır. Bunun, sözcük kapsamını 'aldattığını' sanmıyorum. Öyleyse özünde benzer bir şey yapan eval ("bar = 42;") ile ilgili sorun nedir? Umarım soru açıktır. onlar derleyici optimizasyonlar konum ve eval geçirilen kod olduğundan
İşlevler, motorun hangi parçaları görebileceğini ve ne zaman kullanacağını bilmesi durumunda daha hızlı çalışabilir (ayrıştırma zamanında). '' use use '' içinde çalışmayan kod 'eval() 'alt-optimal olarak kullandığınız iyi bir işarettir. – dandavis
Burada ne soruyorsunuz? – amanuel2
bir prosedürü gerçekleştiren cerrah gibi bir işlevi düşünür; Hastanın xray'sinde açık olmayan alanlar varsa, dikkatli bir cerrahi keşif yapılırken operasyonun yapılması daha uzun sürecektir. – dandavis