国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中使用Object.prototype.toString判斷是否為數組

2019-11-20 12:48:16
字體:
來源:轉載
供稿:網友

為什么要用Object.prototype.toString而不是Function.prototype.toString或者其它?這是和他們的toString解釋方式有關系的。下面是ECMA中對Object.prototype.toString的解釋:

復制代碼 代碼如下:

Object.prototype.toString( )

When the toString method is called, the following steps are taken:
1. Get the [[Class]] property of this object.
2. Compute a string value by concatenating the three strings “[object “, Result (1), and “]”.
3. Return Result (2)


其過程簡單說來就是:1、獲取對象的類名(對象類型)。2、然后將[object、獲取的類名、]組合并返回。
ECMA中對Array有如下說明:
復制代碼 代碼如下:

The [[Class]] property of the newly constructed object is set to “Array”.

因此我們用如下代碼來檢測數組:
復制代碼 代碼如下:

function isArray(o) {   return Object.prototype.toString.call(o) === '[object Array]';  } 

這種方式既解決了instanceof存在的跨頁面問題,也解決了屬性檢測方式所存在的問題,實在是一種妙招,一個很好的解決方案。
除此之外,這種解決辦法也可以應用于判斷Date,Function等類型的對象。
 
另外還有幾個方法:
復制代碼 代碼如下:

var arr = []; return arr instanceof Array; 

如果有其他好的方法不妨貼出來。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漯河市| 教育| 即墨市| 海门市| 田阳县| 古交市| 诸暨市| 深圳市| 明水县| 芷江| 新建县| 当雄县| 堆龙德庆县| 瑞安市| 出国| 辽中县| 礼泉县| 专栏| 登封市| 巴塘县| 盐边县| 抚远县| 桦川县| 印江| 泸水县| 琼海市| 永清县| 隆安县| 德州市| 梁河县| 辽阳市| 瑞丽市| 西乌珠穆沁旗| 霍州市| 涿州市| 吉林省| 英德市| 抚顺县| 玉环县| 长治市| 额敏县|