重写javascript中的深层函数
我对javascript非常陌生,但我已经承担了一项任务,以更好地理解它。但是,我在使用jQuery时遇到了一些问题。下面的javascript是第三方jQuery插件中的代码,我希望能够在这里重写funFunction()函数来实现我自己的实现。这可能吗?如果可能,我怎么做?我已经进行了大量的搜索,并尝试了多种方法来覆盖函数,例如:重写javascript中的深层函数,javascript,jquery,overriding,Javascript,Jquery,Overriding,我对javascript非常陌生,但我已经承担了一项任务,以更好地理解它。但是,我在使用jQuery时遇到了一些问题。下面的javascript是第三方jQuery插件中的代码,我希望能够在这里重写funFunction()函数来实现我自己的实现。这可能吗?如果可能,我怎么做?我已经进行了大量的搜索,并尝试了多种方法来覆盖函数,例如: jQuery.blah.funFunction = function() { alert("like this"); }; 主要代码: (function($)
jQuery.blah.funFunction = function() { alert("like this"); };
主要代码:
(function($) {
$.extend( {
blah: new function() {
this.construct = = function(settings) {
//Construct... stuff
};
function funFunction() {
//Function I want to override
}
}
});
})(jQuery);
对于那些更感兴趣的人,我正在尝试重写tablesorter,以便用户可以对列进行排序的唯一方法是仅按升序排序
编辑:
有一个wordpress安装,它使用重新加载的WP表,而WP表又使用这个插件。我不想更改这个插件的核心代码,因为如果有任何更新,我必须确保我的前任确切地知道我做了什么
我已经编写了很长一段时间了,我觉得我应该能够轻松地学习javascript,同时也可以学习jQuery。我确切地知道我需要做什么,只是不知道如何重写这个函数。jQuery的好处是,如果插件不能完全满足您的需要,您可以
- 寻找另一个做同样事情的插件李>
- 抓取插件,如果是GPL,就修复它
现在:你真的应该认真思考一下你想做什么,你的需求是什么,作为一个新手,你对派对上的“正确做事方式”有什么样的假设。每个编程环境都有自己的个性,这几乎是一个文化实体。事情可能看起来很奇怪,或者很糟糕,或者很丑陋,但是作为一个局外人,你应该暂停判断,直到你真正习惯了所有的习惯用法。不管怎样,谁会关心次要库的更新?只要所使用的版本符合需要,并且没有适用的bug,升级就没有好处 在任何情况下,我都不建议以如下字符串形式检索可访问的父函数:
functionsstring=”“+functionName
编辑需要编辑的内容,然后重新生成函数:functionName=eval(“+functionsstring+”)
。但这样做是可能的
当您将函数转换为字符串时,不同的浏览器返回的结果略有不同,但它们都是该确切函数的有效声明,所以您应该能够通过正则表达式消除差异
或者,您可以使用ajax调用检索脚本文件,然后执行与上面相同的操作。不过我还是不推荐它。只是想一想:如果你想熟悉Javascript,jQuery不是一种方式。先试试纯Javascript。你不能覆盖它。。。它是一个局部变量,仅在定义它的范围内(以及在任何闭包中)可用。我将投反对票——如果您熟悉一般编程,如果您保持概念清晰,您应该能够同时学习Javascript和jQuery。请记住,jQuery是Javascript,它利用语言的灵活性提供工具和功能。我的投票是先了解DOM和JS几天,然后您可以使用jQuery(或Ext core)了解它可以帮助您解决哪些问题。嘿,我很感谢您的评论,我将在结尾添加更多的信息,说明为什么我不想重写插件。@PintSizedCat-无论您的偏好如何…不幸的是,在这种情况下,您都不能编辑您想要编辑的内容,而不这样做:a)在插件内或b)另一个插件,可能是您自己的。好的,我会让它打开,以防有人找到一些奇妙的方法;)您对$.extend的呼叫没有任何作用。。。它是?