已采纳回答 / syou_yu
那个代码的相似arraysSimilar函数是理解成存在相同的数据类型,例如var arr1=[1,2,null] var arr2=[4,null,null]; 存在Number和null,顺序可以不同,数组的长度一致。没有明确到两个数组里面元素的类型要一一对应。我的理解而已,有错希望理解。
2017-02-06
代码的前半段比较好理解,1.判断是否是数组;2判断长度是否一致;3.定义一些变量和typeOf这个函数供接下来两个for循环使用; 而代码到这里就开始深入了,原因是第一个for循环里的countMap1和countMap2初始都没有t1和t2这两个属性,所以对于countMap1[ t1 ]和countMap2[ t2 ]初始值都为undefined,即为false,所以都进行到else,使其都赋值为1;而后若遇到相同的t1或t2属性,则+1;最后统计同一属性的次数;最后一个for循环则是比较arr1和arr2中的所有成员类型的次数是否一致;一致则返回true。
这道题还是比较简单。
1.先判断参数是否是Array类型
2.判断两个数组的长度是否相等
3.分别遍历两个数组,判断元素类型,并记录每个数组元素各种数据类型的个数
4.比较两个数组每种数据类型的个数是否相等
我写的示例代码 判定结果已通过。
1.先判断参数是否是Array类型
2.判断两个数组的长度是否相等
3.分别遍历两个数组,判断元素类型,并记录每个数组元素各种数据类型的个数
4.比较两个数组每种数据类型的个数是否相等
我写的示例代码 判定结果已通过。
最赞回答 / testname
因为o对象的本身是没有定义add方法的,在这个案例中,add()方法定义在window上,所以就算你在外面add(5,7),这样去执行,其实还是在window对象上调用的add,相当于window.add(5,7);只是window上调用方法和属性的时候,前面的window可以默认不用写而已。这就存在一个问题,o对象内部是没有add方法的,但是我想让它借用window对象的这个方法去实现我要的功能怎么办呢?这个时候就要用到call和apply。具体操作就是老师讲的:需要调用的函数名.call(需要调用这个...
2017-02-04
还有一种继承方式:
function Person() { this.x = 1; }
function Student() { Person.apply(this); this.y = 2; }
var s = new Student();
s.x;
s.y;
function Person() { this.x = 1; }
function Student() { Person.apply(this); this.y = 2; }
var s = new Student();
s.x;
s.y;
2017-02-01