首先请原谅。因为我不知道这个问题是否有效。如果有人清楚我的怀疑那么我很高兴。
基本上:调用类似方法之间的区别是什么:
object.methodname();
$( '#元件')方法名();
双向调用是有效的,但是它们之间有什么不同,其中标准是第一种和第二种类型的方法。是否可以在核心JavaScript中使用?
如果我有一个函数,是否可以进行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
的对象。之后,您将在所选对象上调用该方法。