Mot*_*ika 22 javascript jquery
有没有办法覆盖jQuery的核心功能?假设我想在大小中添加一个警告(this.length):function()而不是在源中添加它
size: function() {
alert(this.length)
return this.length;
},
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以这样做:
if (console)
{
console.log("Size of div = " + $("div").size());
var oSize = jQuery.fn.size;
jQuery.fn.size = function()
{
alert(this.length);
// Now go back to jQuery's original size()
return oSize(this);
}
console.log("Size of div = " + $("div").size());
}
Run Code Online (Sandbox Code Playgroud)
Jac*_*kin 42
你几乎拥有它,你需要this将旧size函数内部的引用设置this为覆盖函数中的引用,如下所示:
var oSize = jQuery.fn.size;
jQuery.fn.size = function() {
alert(this.length);
// Now go back to jQuery's original size()
return oSize.apply(this, arguments);
};
Run Code Online (Sandbox Code Playgroud)
它的工作方式是Function实例有一个调用的方法apply,其目的是任意覆盖this函数体内的内部引用.
所以,作为一个例子:
var f = function() { console.log(this); }
f.apply("Hello World", null); //prints "Hello World" to the console
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33326 次 |
| 最近记录: |