代码的小小疑惑

var Type={};
//type=["String","Array","Number"][i++]这不成了一个复合数组了吗??不太理解
for(var i=0,type;type=["String","Array","Number"][i++];){
    (function(type){
     Type["is"+type]=function(obj){
        return Object.prototype.toString.call(obj)==='[object]'+type+']';
     }
    })(type);
}
alert(Type.isArray([]));
alert(Type.isString("str"));
阅读 2.5k
3 个回答

type="String","Array","Number";

var arr = ["String","Array","Number"];
var j = i++;
var type= arr[j];

type=["String","Array","Number"][i++]

这句话可以这样来理解

var typeList = ["String", "Array", "Number"];
type = typeList[i];
i++;

并不是。。
"String","Array","Number"]定义了一个三元的数组,["String","Array","Number"访问的是其第一个元素,即"String"。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题