Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在使用jQuery.extend()执行重写时包含对原始函数的引用_Javascript_Debugging_Syntax_Scope_Extend - Fatal编程技术网

Javascript 如何在使用jQuery.extend()执行重写时包含对原始函数的引用

Javascript 如何在使用jQuery.extend()执行重写时包含对原始函数的引用,javascript,debugging,syntax,scope,extend,Javascript,Debugging,Syntax,Scope,Extend,所以,我试图重写一个函数,但在方法中包含它的原始方法 var origFunction = $.fn.pluginFunction; $.fn.extend({ pluginFunction: function() { // `origFunction` is available via Closure, // now how can I declare the $.extended function

所以,我试图重写一个函数,但在方法中包含它的原始方法

    var origFunction = $.fn.pluginFunction;
    $.fn.extend({
        pluginFunction: function() {
               // `origFunction` is available via Closure, 
               // now how can I declare the $.extended function here
               // to preserve the original methods and then override
               // only the following object?

                   myObject = {
                        'key1' : 'val1',
                        'key2' : 'val2',
                   }
        }
    });
用于调用原始

origFunction.apply(this,arguments);
但是,如果
myObject
origFunction
内部的局部变量,则不会产生任何影响

用于调用原始文件

origFunction.apply(this,arguments);

但是,如果
myObject
origFunction
内部的局部变量,则不会产生任何影响

修改代码:使用
apply
调用
origFunction
。只有当myObject不是方法的私有变量时,才可以更改它(它应该可以从重写方法全局访问)


修改代码:使用
apply
调用
origFunction
。只有当myObject不是方法的私有变量时,才可以更改它(它应该可以从重写方法全局访问)

用户应用()

apply使用一组参数调用函数。它不是jQuery的一部分,而是核心Javascript的一部分。但是,jQuery文档中提到了这一点:

语法:

somefunction.apply(thisobj, argsarray)
上面调用函数somefunction,将其设置为函数范围内的thisobj,并将argsarray中的参数作为参数传递给函数。

User apply()

apply使用一组参数调用函数。它不是jQuery的一部分,而是核心Javascript的一部分。但是,jQuery文档中提到了这一点:

语法:

somefunction.apply(thisobj, argsarray)

上面调用函数somefunction,将其设置为函数作用域内的thisobj,并将argsarray中的参数作为参数传递给函数。

这不起作用,因为执行
origFunction.apply(this,arguments)
会过早地执行函数。我正在尝试调试它,并添加一个回调,这样我可以确保在执行它之前正确扩展该函数,但您建议的
origFunction()
apply实际上是我问题的根源-在调试器中遍历它,插件在扩展之前是在这一行执行的。它是如何提前执行的?没有理解你的意思。这不起作用,因为执行
origFunction.apply(这个,参数)
会过早地执行函数。我正在尝试调试它,并添加一个回调,这样我可以确保在执行它之前正确扩展该函数,但您建议的
origFunction()
apply实际上是我问题的根源-在调试器中遍历它,插件在扩展之前是在这一行执行的。它是如何提前执行的?没有理解你的意思。这不起作用,因为执行
origFunction.apply(这个,参数)
会过早地执行函数。我正在尝试调试它,并添加一个回调,这样我可以确保在执行它之前正确扩展该函数,但您建议的
origFunction()
apply实际上是我问题的根源-在调试器中遍历它,插件在扩展之前就在这一行执行。这不起作用,因为执行
origFunction.apply(这个,参数)
会过早地执行函数。我正在尝试调试它,并添加一个回调函数,这样我可以确保在执行它之前正确扩展该函数,但您建议的
origFunction()
apply实际上是我问题的根源-在调试器中遍历它,插件在扩展之前在这一行执行。