国产探花免费观看_亚洲丰满少妇自慰呻吟_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; 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂阳县| 乳山市| 巴青县| 武城县| 张家界市| 富裕县| 固始县| 孝昌县| 许昌市| 余干县| 桦甸市| 吴桥县| 洛扎县| 许昌市| 南开区| 陆良县| 太仆寺旗| 甘德县| 萨迦县| 鄂托克旗| 谷城县| 鄢陵县| 湘潭市| 利川市| 柞水县| 郓城县| 奎屯市| 惠安县| 鹤壁市| 福鼎市| 枣阳市| 桐庐县| 香港| 安丘市| 沭阳县| 南华县| 上高县| 刚察县| 合水县| 东辽县| 永吉县|