Maison  >  Questions et réponses  >  le corps du texte

用JavaScript封装bind函数

function bind(fn, obj) {  
  return function() {    
    return fn.apply(obj, arguments);    }}

我的问题是:

1.能不能写成像下面这样

function bind(fn, obj) {  
  return fn.apply(obj, arguments);}

2.如果不能,是为什么,这样写的话与第一段代码有什么区别,会造成什么问题

3.能不能写个栗子举例一下


phpcn_u699phpcn_u6992807 Il y a quelques jours844

répondre à tous(2)je répondrai

  • 数据分析师

    数据分析师2017-10-01 00:42:30

    Utilisez JavaScript pour encapsuler la fonction de liaison - Questions et réponses sur le site Web PHP chinois - Utilisez JavaScript pour encapsuler la fonction de liaison - Questions et réponses sur le site Web PHP chinois

    Jetez un œil autour de vous et apprenez.

    répondre
    0
  • 巴扎黑

    巴扎黑2017-03-06 13:17:51

    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));   }}


    répondre
    0
  • Annulerrépondre