为什么jq的匿名函数 外部可以访问到里面的方法 我也看过里面没有全局的变
跪求大牛详细解释
(function(e,t){//jq代码})(window) |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
jQuery源码的最后面,直接写到window上,就变成全局变量了!
window.jQuery=window.$=jQuery; |
|
|
|
|
你可以使用java语言设置全局变量,这样jq里面就可以用了 |
|
|
|
|
(function(e,t){functionabc(n){console.log(n)}})(window)abc('123')//VM216:1UncaughtReferenceError:abcisnotdefinedat:1:1并没有访问到……求复现代码~~~
-------------------------------------------------------------------
jQuery的所有方法都是建立在jQuery对象(即 $ ),原生的js对象就是访问不到的。当你使用jQuery对象时,它会以你选中的DOM对象实例化一个jQuery对象,然后在调用jQuery方法。然后jQuery再将你选择的jQuery方法翻译成原生DOM方法去执行。对于jQuery,只有一个所谓全局:即jQuery对象(别名$),并没有其他的全局变量或方法。 |
|
|
|
|
为什么访问不到,因为他在程序内部将函数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); |
|
|
|
|