JavaScript 使用 constructor
constructor是Object類型的原型屬性,它能夠返回當(dāng)前對(duì)象的構(gòu)造器(類型函數(shù))。利用該屬性,可以檢測(cè)復(fù)合型數(shù)據(jù)的類型,如對(duì)象、數(shù)組和函數(shù)等。
■實(shí)例設(shè)計(jì)
【示例1】下面的代碼可以檢測(cè)對(duì)象和數(shù)組的類型,可以用于過濾對(duì)象、數(shù)組。
var o = {};
var a = [];
if (o. constructor == Object) document .write ("o是對(duì)象");
if (a. constructor == Array) document ? write ("a 是數(shù)組");
結(jié)合typeof運(yùn)算符和constructor原型屬性,可以檢測(cè)不同類型的數(shù)據(jù),常用數(shù)據(jù)類型的檢測(cè)結(jié)果如表所示。
值(value) | typeof value (表達(dá)式返回值) | value.constructor (構(gòu)造函數(shù)的屬性值) |
var value = 1 | "number" | Number |
var value = Ma" | "string" | String |
var value = true | "boolean" | Boolean |
var value = {} | "object" | Object |
var value = new Object() | "object" | Object |
var value =[] | "object" | Array |
var value = new Array() | "object" | Array |
var value = function(){} | "function" | Function |
function className(){}; var value = new className(); | "object" | className |
var value = undefined; console.log(value && value.constructor); var value = null; console.log(value && value.constructor); | "返回 undefined //返回null |
數(shù)值直接量也不能直接讀取constructor屬性,應(yīng)該先把它轉(zhuǎn)換為對(duì)象再調(diào)用。 | |
console.log(10.constructor); console.log((10).constructor); console.log(Number(10).constructor); | //拋出異常 //返回Number類型 //返回Number類型 |
點(diǎn)擊加載更多評(píng)論>>