簡體   English   中英

IE9:hasOwnProperty技巧不起作用?

[英]IE9: hasOwnProperty trick does not work?

有充分證據表明,IE中的原生DOM元素不包含hasOwnProperty()方法。 這有幾個解決方案; 其中最優雅的是直接在Object.prototype中訪問hasOwnProperty()方法,如下所示:

Object.prototype.hasOwnProperty.call(element, name);

在我看來,這不再適用於IE9。 誰能解釋一下? 這是一個說明這一點的小提琴

在兼容模式關閉的標准模式下使用IE9,警報顯示:

sessionStorage is supported: false
localStorage is supported: false

但是,在打開兼容性或Quirks模式后(或使用開發人員工具使用IE8和IE7引擎渲染頁面)后,警報會顯示:

sessionStorage is supported: true
localStorage is supported: true

這里有其他工作,或者hasOwnProperty的解決方法不再可用嗎?

這是因為這些屬性存儲在window的原型鏈中,而不是直接存儲在對象上。

如果您使用in ,它會搜索原型鏈你,給你trueIE9

var isSessionStorageSupported = "sessionStorage" in window; // true
var isLocalStorageSupported = "localStorage" in window;     // true

http://jsfiddle.net/fHRZs/2/

所以.hasOwnProperty()給出了正確的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM