javascript for in語句瀏覽器相容問題簡單介紹

admin發表於2017-04-06

關於for in語句的基本用法這裡就不多介紹了,具體可以參閱javascript for in語句一章節。

下面首先看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  url:"softwhy.com",
  webName:"螞蟻部落",
  address:"青島市南區"
}
for(var prop in obj){
  console.log(prop+":"+obj[prop])
}

上面的程式碼可以遍歷物件的自定義屬性,但是它並沒有能夠遍歷物件的內建屬性或者方法,比如toStirng()和valueOf()方法並沒有被遍歷到。那麼如果重寫這些方法以後會是怎麼結果呢,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  url:"softwhy.com",
  webName:"螞蟻部落",
  address:"青島市南區",
  toString:function(){return "螞蟻部落歡迎您"}
}
for(var prop in obj){
  console.log(prop+":"+obj[prop])
}

上面的程式碼中,瀏覽器相容性就出來了,結論如下:

(1).IE9以下瀏覽器不會輸出toString()方法。

(2).標準瀏覽器能夠輸出toString()方法。

再介紹一個和瀏覽器相容無關的:

for in語句也可以遍歷原型鏈上的自定義屬性,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
Object.prototype.clone=function(){return "螞蟻部落歡迎您"}
var obj={
  url:"softwhy.com",
  webName:"螞蟻部落",
  address:"青島市南區",
}
for(var prop in obj){
  console.log(prop+":"+obj[prop])
}

相關文章