84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
function bind(fn, obj) { return function() { return fn.apply(obj, arguments); }}
我的问题是:
1.能不能写成像下面这样
function bind(fn, obj) { return fn.apply(obj, arguments);}
2.如果不能,是为什么,这样写的话与第一段代码有什么区别,会造成什么问题
3.能不能写个栗子举例一下
用JavaScript封装bind函数-PHP中文网问答-用JavaScript封装bind函数-PHP中文网问答
围观一下哦,学习一下。
1.不能
2.因为你这个样子,就等于直接执行了fn,而不是生成一个可执行的函数。
3.栗子:
错误栗子:
function bind(fn, obj) { return fn.apply(obj, arguments);}function func(){ console.log(this.a);}// 期望结果是 bind(func, { a:1 })() 输出1bind(func, { a:1 }); // 直接输出1
新鲜可食的栗子:
Function.prototype.bind = Function.prototype.bind || function bind(context, ...args){ let fn = this; return function(...newArgs){ fn.apply(context, [].concat(args, newArgs)); }}
用JavaScript封装bind函数-PHP中文网问答-用JavaScript封装bind函数-PHP中文网问答
围观一下哦,学习一下。
1.不能
2.因为你这个样子,就等于直接执行了fn,而不是生成一个可执行的函数。
3.栗子:
错误栗子:
新鲜可食的栗子: