-
函数表达式查看全部
-
数组、对象的初始化表达式查看全部
-
复合表达式查看全部
-
原始表达式查看全部
-
.join() - 数组成员拼接为字符串,原数组不变 .reverse() - 翻转数组成员,修改原数组 .sort() - 按字符串将数组成员排序,修改原数组 .concat() - 连接两个数组,原数组不变 .slice() - 数组切片,原数组不变 .splice() - 数组剪切和在剪切位置插入成员,修改原数组 .forEach() - 遍历数组,原数组不变 .map() - 数组映射,原数组不变 .filter() - 过滤数组成员,原数组不变 .every()/.some() - 数组成员 全都 / 有一个 满足某条件,原数组不变 .reduce()/.reduceRight() - 将数组成员两两操作,最终得到唯一一个值,原数组不变 .indexOf()/lastIndex() - 从左到右/从右到左搜索实参在数组的索引,不存在则返回-1,原数组不变 Array.isArray() - 判断是否为数组,原数组不变查看全部
-
new func(); //{b:100} 除非return 的是对象,否则返回的是this. 并且this 会被初始化为一个空对象,这个空对象原型是foo.propotype。即使使用了.bind() 方法,仍然没有指向 .bind() 的实参。查看全部
-
使用.bind() 方法可以预先固定好一些参数,类似于给它们传递了默认值。 剩下某些可变的参数可以在不同的情况下传不同的值。 这样让代码更加地清晰,可以更加方便地重用。查看全部
-
.bind() 方法的函数颗粒化: function add(a,b,c){ return a+b+c; } var func = add.bind(undefined,100); // 不需要改变this 的指向,可以传个 undefined 进去,而外的参数100 // 绑定在形参 a 上 func(1,2); // 103 var func2 = func.bind(undefined,200); //func 的a 已绑定了100,所以形参是b,c,此次传的200绑定在b上 func2(10): //310查看全部
-
解释器在解释一个语句时,如果以function开头,就会理解为函数声明。 而前面加一个!可以让解释器理解为函数表达式,这样就可以立即调用了。查看全部
-
不同的调用方法下,this 指向不同的值 module.getX(); //this 指向module,返回 81 var getX = module.getX; getX(); // this 指向 全局变量,返回9 var boundGetX = getX.bind(module); boundGetX(); // this 被 bind 向 module,返回81查看全部
-
严格模式下 foo.apply(null); // undefined, undefined,null foo.apply(undefined); // undefined,undefined,undefined 非严格模式则最后一个(即 this )的返回值都是 window查看全部
-
.call() .apply() 方法查看全部
-
configurable标签有两个影响:1,属性是否可以被删除;2,属性的属性标签可否被重新定义查看全部
-
foo.name - 函数名 foo.length - 形参个数 arguments.length - 实参个数 arguments是一个类数组的对象,其原型并不是 Array.propotype,并没有join、slice等数组对象的方法 如果对应的参数没有传进来,arguments与参数并没有绑定关系 严格模式下,arguments 与 参数没有绑定关系查看全部
-
var g = f.bind({a:"23333"}); // 直接在 f 上绑定了一个对象,并赋值给 g,可以实现绑定一次,重复使用 g(): // "23333" var o = {a:37,f:f,g:g}; o.f(); // 37 o.g() // "23333",使用bind 之后,即使把 a 传进去,使用的仍然是bind 时的值查看全部
举报
0/150
提交
取消