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 중국어 웹사이트 Q&A - JavaScript를 사용하여 바인딩 기능 캡슐화 - PHP 중국어 웹사이트 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 중국어 웹사이트 Q&A - JavaScript를 사용하여 바인딩 기능 캡슐화 - PHP 중국어 웹사이트 Q&A
둘러보고 배워보세요.
1.不能
2.因为你这个样子,就等于直接执行了fn,而不是生成一个可执行的函数。
3.栗子:
错误栗子:
新鲜可食的栗子: