猿问

哪位大神给讲解一下bind函数和this是怎么用的?

我是新手 最好讲的通俗一点 容易理解 不知道bind和this怎么样去用 什么时候去用?谢谢了!!!

xiaozhi1014
浏览 1804回答 4
4回答

baka_q

你说的是jQuery中的bind还是js函数的bind方法,jQuery中的bind没什么说的,就是事件绑定的东西js中的bind用在你要使用的函数有用到this,而你在其他地方引用了这个函数,而且是以xxx.another = myfunction来引用的,这种引用方式在事件绑定,各种函数作为参数的时候出现,引用调用这个函数的操作是xxx.another(); 而不是直接myfunction(); 所以作用域就变成xxx了,而this只认作用域,就会出现预期之外的结果。为了解决这个问题,ECMAScript5中对所有函数引入了方法bind(context),context代表作用域,比如上面例子的xxx,引入bind后可以这么写xxx.another = myfunction.bind(yourcontext);然后你的函数里的this就指向yourcontext而不是xxx了bind的context参数后还可以接参数,不过那就是函数柯里化了,这个有兴趣可以去看看javascript高级程序设计的高级技巧中的函数柯里化

淡雅的默

bind是给元素添加一个或者多个事件,this代表当前的元素;如:$("p").bind("click",function(){      $(this).hide()});给元素p添加一个事件,而下面的this就是带表p本身,然后执行hide事件(隐藏)

xczzxc002

HTML<div id='hello' >h</div>Js $('#hello').bind('click',function(){alert(this)});返回objectthis指div标签,bind,第一个参数是事件,第二个参数是函数,意思是id为hello的标签绑定点击事件触发封装的函数,在函数里this指这个标签

星空下的小孩

你需要给一个元素绑定事件时就可以用bind,事件可以在jQuery手册上找,this,就是,谁调用就是谁,$("#btn").bind("click",function(){$(this).val("我就是this");}),这里的this就是id为btn  的那个元素。
随时随地看视频慕课网APP
我要回答