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 

 

posted @ 2020-11-03 13:37  兴软  阅读(130)  评论(0编辑  收藏  举报