JavaScript 使用 constructor
constructor是Object类型的原型属性,它能够返回当前对象的构造器(类型函数)。利用该属性,可以检测复合型数据的类型,如对象、数组和函数等。
■实例设计
【示例1】下面的代码可以检测对象和数组的类型,可以用于过滤对象、数组。
var o = {};
var a = [];
if (o. constructor == Object) document .write ("o是对象");
if (a. constructor == Array) document • write ("a 是数组");
结合typeof运算符和constructor原型属性,可以检测不同类型的数据,常用数据类型的检测结果如表所示。
值(value) | typeof value (表达式返回值) | value.constructor (构造函数的属性值) |
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 |
数值直接量也不能直接读取constructor属性,应该先把它转换为对象再调用。 | |
console.log(10.constructor); console.log((10).constructor); console.log(Number(10).constructor); | //抛出异常 //返回Number类型 //返回Number类型 |
点击加载更多评论>>