2010-09-09 21 views

cevap

8

Tabii uygulama hataları, örneğin, ben JScript standardın Microsoft uygulanmasına ilişkin olup uğraşmak zorunda olduğunuz en ciddi vardır:

FunctionExpressions tanıtıcısı sadece erişilebilir olmalıdır işlevin kendisinin iç kapsamı:

(function foo() { 
    alert(typeof foo); // "function" 
})(); 

alert(typeof foo); // should be "undefined", on IE shows "function" 

böcek tüm güncel IE sürümlerinde mevcut olduğu, sadece IE9 Previews'i üzerinde giderildi.

var foo = function bar() {}; 

if (typeof bar != 'undefined') { // the case of IE 
    alert(foo === bar); // false!!! 
} 

başka iyi bilinen JScript hata "DontEnum Bug" ise, kendi kapsamı zincirinde bir nesne enumerable olmayan bir özellik (içeriyorsa:

Ve aslında örneğin, iki fonksiyonlu nesneleri oluşturur, daha da kötü

var dontEnumBug = {toString:'foo'}.propertyIsEnumerable('toString'); 

o IE üzerinde false değerlendirecek usin zaman, bu sorunlara neden: özellik diğer nesne üzerinde gölgeli ise, bu örneğin olmayan enumerable kalacak) { DontEnum } niteliği vardır g for-in bildirimi, çünkü özellikler ziyaret edilmeyecektir.

JScript, IE9 uygulamasının gerçekten çok daha iyi hale gelmesine karşın, en fazla sayıda soruna sahip olan uygulamadır.

Önerilen madde:

+1

http://stackoverflow.com/questions/3663775/object-name-same-a-function-name/ buna Yanıtınız Bu soruya güzel bir ek olacaktır. En azından FunctionStatement kısmı. –

+0

Güzel örnekler. Eğer siz (veya bir başkasının) ekartcript'i vurgulayan daha fazla makalesi varsa 3 tarayıcıdaki uygulama farklarını onlara gönderin :) – AlfaTeK

İlgili konular