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

首頁 > 編程 > JavaScript > 正文

JavaScript中object和Object的區別(詳解)

2019-11-19 17:24:53
字體:
來源:轉載
供稿:網友

JavaScript中object和Object有什么區別,為什么用typeof檢測對象,返回object,而用instanceof 必須要接Object呢

這個問題和我之前遇到的問題非常相似,我認為這里有兩個問題需要解決,一個是運算符new的作用機制,一個是function關鍵字和Funtion內置對象之間的區別。看了一些前輩的博客和標準,這里幫提問者總結一下。

1、new

new運算符的作用是創建一個對象實例。這個對象可以是用戶自定義的,也可以是帶構造函數的一些系統自帶的對象。如果 new 表達式之后的構造函數返回的不是JavaScript內置的引用對象(Object,String等)new會創建一個匿名對象并返回;如果是內置引用對象或者原始類型就會覆蓋匿名對象。(無 return 時其實為 return 原始類型 undefined)。new運算符詳細介紹

2、function和Function

ECMAScript 的Function實際上就是一個功能完整的對象。而function這個關鍵字是用來創建所有對象的構造函數或者普通函數要用的關鍵字ECMAScript如何定義類和對象,提問者var a=new function(){}實際上是用構造函數的方法創建了一個匿名對象的實例,而并不是系統內置對象Function的實例,所以a instanceof Function返回false,typeof返回"object"。

那么什么時候typeof返回"function"呢?當它真的是一個函數名的時候。

 

`function a (){}//undefinedtypeof a//"function"`

 typeof 和 instanceof 這兩個功能就是完全不一樣的運算符。typeof 是為了檢查數據類型,instanceof是為了看一個變量是否是某個對象的實例。

typeof 的目的,是檢查數據類型,而它的輸出,非常確定的只有如下幾個:

•undefined

•object

•boolean

•number

•string

•function

•symbol(新)

typeof 返回的結果,是一個字符串。只要檢查的變量是一個對象,或者是 Null,那它就會返回 object,這當然不夠精確,所以有了 instanceof。

因為不存在 object 這個對象,所以會提示你 object is not defined 。而 Object 是 JavaScript 中一個重要的對象,其它對象都是基于它的,包括你創建的函數。你創建 a 的時候,使用的是 new 關鍵字,這相當于是一個 Function 引用類型的實例。所以 a instanceof Object 就會是 true。

區別是Object 是一種對象類型, "object"是一個字符串, 你不定義的話沒有意義。

以上這篇JavaScript中object和Object的區別(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辉南县| 千阳县| 惠安县| 天镇县| 临颍县| 高台县| 涟源市| 武定县| 尚志市| 石首市| 宁明县| 穆棱市| 伊金霍洛旗| 陆良县| 长寿区| 汝南县| 平度市| 扎赉特旗| 姚安县| 沁水县| 甘泉县| 彰化市| 武山县| 昌吉市| 泗水县| 绿春县| 南宫市| 仙桃市| 嵩明县| 关岭| 家居| 鲁甸县| 崇义县| 金华市| 榆社县| 黑河市| 金山区| 灵寿县| 永年县| 大荔县| 荔浦县|