对于不支持它的浏览器(unsafeWindow
),有一个名为via this person's github的API对象的解决方法函数
var unsafeWindow = (function() {
var e1 = document.createElement('p')
e1.setAttribute('onclick', 'return window;');
return e1.onclick();
})();
// If the current document uses a JavaScript library, you can use it in
// your user script like this:
console.log(unsafeWindow.jQuery);
如果unsafeWindow
是一个对象(或者在这种情况下是一个模仿该对象的函数),它如何像$ = unsafeWindow.jQuery
一样使用?我知道这是你将函数映射到$
而不是$
是一个简单的jQuery别名的方法,但我只是为什么而感到困惑,因为我认为jQuery
本身就是一个对象,在这里被调用,就像一个方法一样。
编辑:感谢您的回答,我希望能够“勾选”所有人,感谢您的帮助!
答案 0 :(得分:5)
在javascript中,函数是对象!
答案 1 :(得分:2)
不要让.
蒙上眼睛。 object.something
获取属性something
,可以是任何内容(函数,变量,对象,值..),而object.something()
正在应用方法something
答案 2 :(得分:1)
执行$ = unsafeWindow.jQuery
时,您正在将jQuery对象分配给$,就像您正确指出的那样。您没有调用任何函数。在javascript中调用函数涉及在末尾添加括号()
。
答案 3 :(得分:1)
Jquery是一个附加方法的构造函数。当用作$.each()
时,您只是调用附加到函数(对象)的方法each()
。当您使用$()
时,它会调用内部new jQuery()
并返回它,让您可以访问它的原型方法。