web前端学习总结3:JS中的constructor浅谈及其用途
- 每个对象/函数天生都有一个属于自己的constructor构造器,这个constructor可以反映出某个对象 / 函数具体属于哪一个JavaScript对象中的高级对象如String,Array,Date,Object,Number,Boolean,Math对象的哪一个类型(Math对象比较特殊,它没有自己的constructor构造器,直接调用其中封装好的方法比如Math.MAX(数字参数)就行;使用它的方法时不用像Date对象那样先new一个实例出来才能继续使用Date的方法);
- 于是,我们可以**借助于此来实现某个数据是属于什么类型,**特别是结合JavaScript中的原型prototype来添加自定义函数 / 功能 以及 属性,当需要使用时让数据变量来操作这个添加好的方法就可以。
3. 试验案例图:
(1)Math对象:
|
|
(2)Array数组对象:
|-
-|
(3) 函数function:
(4)总结:综合以上案例,我觉得又进一步丰富并扩展了我们在检测数据类型方面的方法与技能,比如要验证一个数据是否为数组Array类型,一般有以下方法:
let arr1 = [];
let str1 = "let's go";
// 让字符串str1通过split方法转为数组,当然转换后要进行判断数据是否合适
let arr2 = str1.split();
if(arr2 instanceof Array || Array.isArray(arr2) || arr2.constructor === Array) {
arr1 = arr2; // 通过条件检验为数组Array后,就能进行下一步的数组运算操作了
alert("我是一个数组。");
}
else {
alert("不是一个数组,不给通过。");
}
① 上面的案例就是扩展了一个判断数组的方法:[].constructor === Array这样的写法。