regularjs/regular

regular中应该支持array的继承

Closed this issue · 1 comments

目前regular中是直接在Array.isArray方法中通过toString的方式判断是不是数组的。考虑到会有直接从Array继承的类,建议用instanceof Array来判断是不是数组。

只需将下面两个函数改成这样即可

isArray: function(arr){
  return arr instanceof Array;
  // return tstr.call(arr) === "[object Array]";
}

_.typeOf = function (o) {
    return o == null ? String(o) : (o instanceof Array ? 'array' : o2str.call(o).slice(8, -1).toLowerCase());
}

不会的, 即使是ES6用 class进行继承(并且改写了toString方法), ({}).toString的默认行为仍然是输出 '[object Array]'