javascript - 高级技巧中的bind方法怎么理解

查看:93
本文介绍了javascript - 高级技巧中的bind方法怎么理解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

function bind(fn, context){

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

}

这是JavaScript高级程序设计高级技巧中bind方法 对这个方法我有两点疑问:

1、argument是里面的方法的参数集合,但是又传不到参数给里面的方法,那这个argument有什么意义?

2、调用里面的fn时,为什么要加return,不加也可以调用啊,加了有什么意义?

解决方案

举个简单例子

var a = 0;
var obj = {a:2};
function add(x,y){ return this.a + x + y;}

在非严格模式下

add(3,4) //7
bind(add,obj)(3,4) //9

  1. arguments 是传到返回的函数里面的 也就是上文的 类似[3,4]的东西(array like)

  2. return 是返回了一个值
    return

    • 如果函数是只有副作用的 比如触发一个动作,改某个变量的值的那是没啥

    • 如果没副作用函数 比如我上面这个add 那你怎么写能到达我现在要的效果...

这篇关于javascript - 高级技巧中的bind方法怎么理解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆