Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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.Recup是什么意思?_Javascript_Jquery - Fatal编程技术网

Javascript Jquery.Recup是什么意思?

Javascript Jquery.Recup是什么意思?,javascript,jquery,Javascript,Jquery,嗯,我对巫婆说“$.Recup…”这句话感到困惑,我不知道为什么它的名称与插件名称相同,以及它的用途 (function ($) { $.fn.Recup = function () { var parametros = { }; var tsic = true; $.Recup = function (opciones) { var Metodos = { };

嗯,我对巫婆说“$.Recup…”这句话感到困惑,我不知道为什么它的名称与插件名称相同,以及它的用途

(function ($) {
    $.fn.Recup = function () {
        var parametros = {

        };
        var tsic = true;
        $.Recup = function (opciones) {

            var Metodos = {

            };
            return Metodos;
        };
        $.Recup.anterior = function () {

        };
        $.Recup.siguiente = function () {

    }

   })(jQuery);
我指的是这段代码,
$.Recup
到底是做什么的?如果有人给我举个例子就太好了

         $.Recup = function (opciones) {

                var Metodos = {

                };
                return Metodos;
            };

这是一个jQuery插件

jQuery.fn
是jQuery原型的别名。因此,这一行允许您在jQuery实例上调用
Recup
函数:

$('#myid').Recup();

这里是。

在这种情况下,它似乎是一个有问题的插件设计-特别是因为
$.Recup
在第一次调用
$.fn.Recup
之前不会被分配

然而,如果它是“适当和/或写得好的”,则是另一个需要(预期)使用上下文的问题。无论如何,我会拒绝这段代码,因为它散发着被误解的设计和广泛范围的副作用的味道


无论如何,函数的分配方式决定了如何调用该方法

// let $ be jQuery, then:
$.fn.foo = function () { console.log("foo") }
$.bar    = function () { console.log("bar") }

$.foo()        // TypeError: $.foo is not a function
$.bar()        // -> "bar"
$("sel").foo() // -> "foo"
$("sel").bar() // TypeError: $(..).bar is not a function
也就是说,
$.fn.foo
类似于-它基于当前选择的元素(由
this
表示)执行某些操作。另一方面,
$.bar
类似于—它提供了一种在常规集合上迭代的方法,但与(以前)选定的特定元素集无关

一般来说,一个插件应该只向
$添加一个条目。fn
,但是直接添加到
$
可能有助于公开实用程序功能-这一定要小心


以下是修复错误泄漏数据问题的两种方法:

$.fn.Recup = function () {
    var parametros = ..
    var tsic = true;
    // Most trivial change; then use recup in this scope
    // (or child scopes) only. There is no $.Recup - yay!
    var recup = function (opciones) {
    };
    // ..
}
或者,只公开为本地方法:

$.fn.Recup = function () {
    var parametros = ..
    var tsic = true;
    function anterior () {
    }
    function siguiente () {
    }
    // Just use simple functions in scope
}

Recup
是特定插件的标识符,没有任何特殊含义。更改标题和问题以反映“$.fn.Plugin vs.$.Plugin”以获得更好的结果。谢谢,我正在分析此脚本,我输入的代码是其中的一部分,我以一般方式编写,在真实代码上,它表示
$。Reproductor
而不是
$。Recup
并且在其内部有一个Atribute
Iniciar:
其中包含一个函数。这是从html代码中通过以下方式调用的:
$.Reproductor().ini()毕竟它使用了
$内的
$.Reproductor
。fn.Reproductor
谢谢again@FrankGonzalesPerez是的,这是糟糕的编码,因为$.Reproductor泄漏到了它使用的范围之外。使用局部变量或仅将方法提取到普通函数中,而不是指定给
$.Reproductor
(这是一种仅适用于特定实例的全局副作用)。@FrankGonzalesPerez我已使用两个选项更新了我的答案,这两个选项都是关于泄漏到
$。无论什么
,这是我在提交时会拒绝的代码。