JavaScript 使用 constructor
constructor是Object類型的原型屬性,它能夠返回當(dāng)前對象的構(gòu)造器(類型函數(shù))。利用該屬性,可以檢測復(fù)合型數(shù)據(jù)的類型,如對象、數(shù)組和函數(shù)等。
■實例設(shè)計
【示例1】下面的代碼可以檢測對象和數(shù)組的類型,可以用于過濾對象、數(shù)組。
var o = {};
var a = [];
if (o. constructor == Object) document .write ("o是對象");
if (a. constructor == Array) document ? write ("a 是數(shù)組");
結(jié)合typeof運算符和constructor原型屬性,可以檢測不同類型的數(shù)據(jù),常用數(shù)據(jù)類型的檢測結(jié)果如表所示。
值(value) | typeof value (表達式返回值) | 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)換為對象再調(diào)用。 | |
console.log(10.constructor); console.log((10).constructor); console.log(Number(10).constructor); | //拋出異常 //返回Number類型 //返回Number類型 |
點擊加載更多評論>>