84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
function bind(fn, obj) { return function() { return fn.apply(obj, arguments); }}
我的问题是:
1.能不能写成像下面这样
function bind(fn, obj) { return fn.apply(obj, arguments);}
2.如果不能,是为什么,这样写的话与第一段代码有什么区别,会造成什么问题
3.能不能写个栗子举例一下
JavaScript を使用してバインド関数をカプセル化する - PHP 中国語 Web サイト Q&A - JavaScript を使用してバインド関数をカプセル化する - PHP 中国語 Web サイト Q&A
周りを見て学んでください。
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 を使用してバインド関数をカプセル化する - PHP 中国語 Web サイト Q&A - JavaScript を使用してバインド関数をカプセル化する - PHP 中国語 Web サイト Q&A
周りを見て学んでください。
1.不能
2.因为你这个样子,就等于直接执行了fn,而不是生成一个可执行的函数。
3.栗子:
错误栗子:
新鲜可食的栗子: