方法实现差异..需要一些了解

时间:2012-06-29 05:31:56

标签: javascript jquery

首先请原谅。因为我不知道这个问题是否有效。如果有人清楚我的怀疑那么我很高兴。

基本上:调用类似方法之间的区别是什么:

  1. object.methodname();

  2. $( '#元件')方法名();

  3. 双向调用是有效的,但是它们之间有什么不同,其中标准是第一种和第二种类型的方法。是否可以在核心JavaScript中使用?

    如果我有一个函数,是否可以进行2种类型的方法调用?

    任何人都能提供一些正确理解的好参考吗?

    提前致谢。

2 个答案:

答案 0 :(得分:2)

第一种语法:

object.methodName();

说要调用一个函数methodName(),该函数被定义为object的属性。

第二种语法:

$('#element').methodname();

称调用名为$()的函数(为了使其工作)必须返回一个对象,然后在该返回的对象上调用methodname()

你说“两种方式都在调用”, - 所以你可能会得到类似这样的代码:

var myObject = $('#element');
myObject.methodname();

$()函数的结果存储在变量中的概念通常称为“缓存”jQuery对象,如果计划在该对象上调用大量方法,则效率更高,因为每次都是调用它创建另一个jQuery对象的jQuery $()函数。

“核心javascript中是否也可以使用它?”是的, if 实现返回对象的函数。也就是说,JS支持这个(它必须,因为jQuery只是一个JS库)但它不会自动发生,你必须编写适当的功能代码。例如:

function getObject() {
   return {
      myMethod1 : function() { alert("myMethod1"); return this; },
      myMethod2 : function() { alert("myMethod2"); return this; }
   };
}

getObject().myMethod1().myMethod2();

在我看来,更深入地解释这个概念超出了Stack Overflow答案的范围 - 你需要阅读一些JavaScript教程。一旦你学会了JS基础知识,MDN's Working With Objects文章就是一个很好的起点(可以说,使用对象一个JS的基础,但显然我的意思是比这更基本的东西)。

答案 1 :(得分:1)

差异非常微妙。

object.methodname();

这是JavaScript掌握了对象的时候。

$('#element').methodname();

如果您使用的是jQuery,则要求jQuery选择id为#element的对象。之后,您将在所选对象上调用该方法。