Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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函数?_Javascript - Fatal编程技术网

如何通过其他对象调用Javascript函数?

如何通过其他对象调用Javascript函数?,javascript,Javascript,首先,我为这个模糊的标题感到抱歉;想不出更合适的措辞了。一般来说,我对Javascript和web编程比较陌生(尽管是.NET桌面编程的第二季)。我在JS中反复研究了以下编码模式,尤其是使用jQuery UI之类的库函数: $("#MyDiv").dialog({ ... }); 我的问题是(像C程序员一样思考),$(“#MyDiv”)的类型是什么?dialog()如何成为这种类型的成员?我可以看到,dialog()是在jQuery UI库中定义的,可以动态附加到任何对象。这里有什么魔力?C#

首先,我为这个模糊的标题感到抱歉;想不出更合适的措辞了。一般来说,我对Javascript和web编程比较陌生(尽管是.NET桌面编程的第二季)。我在JS中反复研究了以下编码模式,尤其是使用jQuery UI之类的库函数:

$("#MyDiv").dialog({ ... });
我的问题是(像C程序员一样思考),
$(“#MyDiv”)
的类型是什么?
dialog()
如何成为这种类型的成员?我可以看到,
dialog()
是在jQuery UI库中定义的,可以动态附加到任何对象。这里有什么魔力?C#的等价物是什么;扩展方法


另外,是否有一种方法可以获取此“附加”函数中调用对象的引用?

以下是对以下内容的快速分解:

$("#MyDiv").dialog({ ... });
  • $
    是一个函数。虽然它看起来像一个特殊的符号,但它只是一个普通的老javascript函数
  • 该函数接受参数
    “#MyDiv”
    ,并创建并返回一个jQuery对象
  • jQuery UI库通过将该方法添加到jQuery对象的原型中(jQuery使用的扩展机制),确保创建的所有jQuery对象都有一个名为
    .dialog()
    的方法
  • 因此,
    .dialog()
    部分正在调用前面函数刚刚创建并返回的jQuery对象上的
    .dialog()
    方法

  • 按顺序步骤:

  • 调用
    $
    函数并向其传递
    “#MyDiv”
    选择器参数
  • $
    函数创建一个jQuery对象并查找该选择器,并将与该选择器匹配的任何DOM对象存储在该jQuery对象中
  • 然后,
    $
    函数返回这个新的jQuery对象
  • 然后在jQuery对象中搜索名为
    .dialog()
    的方法,当找到该方法时,它将在该对象上执行,如
    obj.method()
    中所示
  • .dialog()
    方法查看调用它的jQuery对象(此
    指针设置为该对象),查看传递给
    .dialog()
    方法的参数,并相应地执行操作

  • 下面是对以下内容的快速细分:

    $("#MyDiv").dialog({ ... });
    
  • $
    是一个函数。虽然它看起来像一个特殊的符号,但它只是一个普通的老javascript函数
  • 该函数接受参数
    “#MyDiv”
    ,并创建并返回一个jQuery对象
  • jQuery UI库通过将该方法添加到jQuery对象的原型中(jQuery使用的扩展机制),确保创建的所有jQuery对象都有一个名为
    .dialog()
    的方法
  • 因此,
    .dialog()
    部分正在调用前面函数刚刚创建并返回的jQuery对象上的
    .dialog()
    方法

  • 按顺序步骤:

  • 调用
    $
    函数并向其传递
    “#MyDiv”
    选择器参数
  • $
    函数创建一个jQuery对象并查找该选择器,并将与该选择器匹配的任何DOM对象存储在该jQuery对象中
  • 然后,
    $
    函数返回这个新的jQuery对象
  • 然后在jQuery对象中搜索名为
    .dialog()
    的方法,当找到该方法时,它将在该对象上执行,如
    obj.method()
    中所示
  • .dialog()
    方法查看调用它的jQuery对象(此
    指针设置为该对象),查看传递给
    .dialog()
    方法的参数,并相应地执行操作
  • $(“#MyDiv”)
    返回一个jQuery对象,
    对话框
    是jQuery类的一个方法

    不像C++语言那样,JavaScript允许方法在类中被添加到即时的类中。因此,当您加载jQuery UI库时,它会将

    对话框
    方法添加到jQuery类中

    在方法内部,特殊变量
    this
    包含对调用它的对象的引用。

    $(“#MyDiv”)
    返回jQuery对象,而
    dialog
    是jQuery类的方法

    不像C++语言那样,JavaScript允许方法在类中被添加到即时的类中。因此,当您加载jQuery UI库时,它会将

    对话框
    方法添加到jQuery类中


    在方法内部,特殊变量
    this
    包含对调用它的对象的引用。

    $(“#MyDiv”)
    是属于jQuery库的类型,而不是纯Javascript。将jQuery看作是一组扩展方法,比如c中的Linq,通常,您可以使用
    this
    引用调用对象(来自该方法)。例如,$('#mydiv').dialog({…})=>
    通常是DOM元素(
    #mydiv
    )或表示选择的jQuery对象。有关构造函数和原型的更多信息可以在此处找到:即使在不使用new的情况下调用jQuery($),也会返回一个新的jQuery实例。
    $(“#mydiv”)
    是属于jQuery库的类型,它不是纯Javascript。将jQuery看作是一组扩展方法,比如c中的Linq,通常,您可以使用
    this
    引用调用对象(来自该方法)。例如,$('#mydiv').dialog({…})=>
    通常是DOM元素(
    #mydiv
    )或表示选择的jQuery对象。有关构造函数和原型的更多信息可以在此处找到:即使在不使用new的情况下调用jQuery($),也会返回一个新的jQuery实例。没有jQuery“类”如果它像鸭子一样呱呱叫的话。:)谢谢由于不清楚的原因,我更喜欢这个答案如果jQuery像鸭子一样嘎嘎作响,那么就没有jQuery“类”。)谢谢由于不清楚的原因,我更喜欢这个答案富有洞察力的非常感谢。这是se最接近的c#替代方案