JS 函数小TIPS
1.函数名的获取
function a(){}
var b=function(){}
a.name = 'a';
es5表现 b.name = ''; es6表现 b.name = 'b';
const funa = funb(){}
funa.name = 'funb' es5 es6 表现一致
使用 Function 构造函数 (new Function()).name = 'anonymous'
2.函数bind的使用
var add = function (x, y) {
return x * this.m + y * this.n;
}
var obj = { m: 2, n: 2 };
// 第一个参数是需要绑定的对象 第二个参数是第一个默认值 设x为5
var newAdd = add.bind(obj, 5);
// 只需传入第二个参数值 即 设y为5
newAdd(5) // 20
function add(x, y) {
return x + y;
}
// 绑定第一个参数为null或者undefined时将this绑定到顶层对象,浏览器即window对象
var plus5 = add.bind(null, 5);
// demo里没有this 所以没有影响 或者其他对象也不会覆盖
plus5(10) // 15
// bind返回的函数,name属性值会加上bound前缀。
3.函数内部this指向问题
绑定this的方法 call apply 返回传值 bind 返回function