亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么jq的匿名函數 外部可以訪問到里面的方法 我也看過里面沒有全局的變量啊

為什么jq的匿名函數 外部可以訪問到里面的方法 我也看過里面沒有全局的變量啊

歐羅巴皇 2017-07-07 09:27:22
跪求大牛詳細解釋(function(e,t){ //jq代碼 })(window)
查看完整描述

3 回答

?
qq_青棗工作室_0

TA貢獻446條經驗 獲得超754個贊

jQuery源碼的最后面,直接寫到window上,就變成全局變量了!

window.jQuery?=?window.$?=?jQuery;


查看完整回答
1 反對 回復 2017-07-07
  • 歐羅巴皇
    歐羅巴皇
    的確你這個是可以的我知道 但是我在jq沒看到這個東西
?
杜發明

TA貢獻202條經驗 獲得超301個贊

你就全當這是個閉包

查看完整回答
反對 回復 2017-07-07
?
qq_莫非

TA貢獻257條經驗 獲得超93個贊

你可以使用java語言設置全局變量,這樣jq里面就可以用了

查看完整回答
反對 回復 2017-07-07
?
夜舞暗瀾

TA貢獻19條經驗 獲得超7個贊

(function(e,t){
function?abc(n){console.log(n)}
})(window)
abc('123')
//VM216:1?Uncaught?ReferenceError:?abc?is?not?defined?at?<anonymous>:1:1

并沒有訪問到……求復現代碼~~~

-------------------------------------------------------------------

jQuery的所有方法都是建立在jQuery對象(即 $ ),原生的js對象就是訪問不到的。當你使用jQuery對象時,它會以你選中的DOM對象實例化一個jQuery對象,然后在調用jQuery方法。然后jQuery再將你選擇的jQuery方法翻譯成原生DOM方法去執行。對于jQuery,只有一個所謂全局:即jQuery對象(別名$),并沒有其他的全局變量或方法。

查看完整回答
反對 回復 2017-07-07
  • if_else_
    if_else_
    為什么訪問不到,因為他在程序內部將函數new出來,window只是一個傳入的參數對象。 (function(e){ function test(x){ this.cs(x); } test.prototype.cs=function(a){ console.log(a); } e.abc=function(x){ new test(x); } })(window);
  • if_else_
    if_else_
    為什么訪問不到,因為他在程序內部將函數new出來,window只是一個傳入的參數對象。 (function(e){ function test(x){ this.cs(x); } test.prototype.cs=function(a){ console.log(a); } e.abc=function(x){ new test(x); } })(window);
  • 夜舞暗瀾
    夜舞暗瀾
    我不知道啊,我只是把他的代碼直接寫在瀏覽器里,運行,就是這個結果啊。你跟我說原理可是跟實際結果不符啊。
點擊展開后面4
?
if_else_

TA貢獻42條經驗 獲得超23個贊

為什么訪問不到,因為他在程序內部將函數new出來,window只是一個傳入的參數對象。 (function(e){ function test(x){ this.cs(x); } test.prototype.cs=function(a){ console.log(a); } e.abc=function(x){ new test(x); } })(window);

查看完整回答
反對 回復 2017-07-07
  • 3 回答
  • 0 關注
  • 4312 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號