js的this,bind,call……
寫了一段時間js,在this裡虐了一番,寫一點心得:
var a = {do_something: function(){console.log(this)}}
#直接在
function do_something2(){console.log(this)}
#這裡呼叫a.do_something()輸出的是a這個Object,其實就是是找的父級元素
同理直接呼叫do_something2()輸出的則是整個window物件
var a = {test: '任意一個東西'}
function do_it(){console.log(this)}
$('#id1').on('click', do_it.bind(a))
#在繫結事件的時候,指定function可以給其指定this,這裡就是給this指定成了a
#當然直接呼叫do_it()方法的時候 this還是window物件~
在直接call呼叫方法的時候也可以指定this,需要注意的是,call呼叫的function接收的引數是從第二個開始的
還有就是每個方法/回撥的this都是不一樣的,要傳遞this的時候需要理清思路:
<pre>
var rmAllSysNotice = function(){
var that = this;
var type = this.$notice.attr("data-value");
if(type ==="sys"){
this.deleteAllLocalSysMsgs(function(err,obj){
if(err){
alert("刪除失敗");
}else{
that.cache.setSysMsgs([]);
that.buildSysNotice();
}
})
}else{
this.cache.deleteCustomSysMsgs();
CustomMsg.clear_all(function(){that.buildCustomSysNotice(that)})
}
}
</pre>
相關文章
- JS中的call、apply、bindJSAPP
- js call、apply、bind的實現JSAPP
- 理解JS中的call、apply、bind方法(********************************************************JSAPP
- js中call、apply、bind的區別JSAPP
- 手寫JS函式的call、apply、bindJS函式APP
- 理解JS函式之call,apply,bindJS函式APP
- 重寫JS中的apply,call,bind,new方法JSAPP
- js深入之實現call、apply和bindJSAPP
- js之call,apply和bind的模擬實現JSAPP
- 模擬js中的call、apply和bind的實現JSAPP
- this、apply、call、bindAPP
- apply,call,bind的用法APP
- JS中改變this的指向 call、apply 和 bind 的區別JSAPP
- Javascript - apply、call、bindJavaScriptAPP
- this, call, apply 和 bindAPP
- JavaScript 中的 apply、call、bindJavaScriptAPP
- JS每日一題: Call,Apply,Bind的使用與區別,如何實現一個bind?JS每日一題APP
- JS基礎總結(4)——this指向及call/apply/bindJSAPP
- js中call,apply和bind方法的區別和使用場景JSAPP
- 從一行等式理解JS當中的call, apply和bindJSAPP
- call,apply和bind的區別APP
- 手寫call,apply,bindAPP
- call、apply、bind 區別APP
- apply call bind 簡介APP
- call apply bind區別APP
- apply & call & bind 原始碼APP原始碼
- bind/call/apply 深度理解APP
- JavaScript-apply、bind、callJavaScriptAPP
- this指向與call,apply,bindAPP
- 手寫call、apply、bindAPP
- JS 的 this 指來指去到底指向哪?(call, apply, bind 改變 this 指向)JSAPP
- this與new、call、apply、bind的關係APP
- apply call bind的用法與實現APP
- call、apply、bind應用的介紹APP
- JavaScript重識bind、call、applyJavaScriptAPP
- [譯] Javascript: call()、apply() 和 bind()JavaScriptAPP
- JS開發者應懂的33個概念系列6--this,bind,call,applyJSAPP
- cocos2d - JS 進階主題 call() 、apply() 和 bind() 解析JSAPP
- 使用JS簡單實現一下apply、call和bind方法JSAPP