先说对不起。因为我不知道这个问题是否有效。如果有人能解决我的疑问,我会很高兴。
基本上:调用如下方法有什么不同:
对象.方法名();
$('#element').methodname();
两种方式都可以调用,但是两者之间有什么不同,其中标准使第一类和第二类方法。它在核心 javascript 中也可用吗?
如果我有一个函数,是否可以始终进行 2 种类型的方法调用?
任何人都可以提供一些很好的参考来正确理解吗?
提前致谢。
先说对不起。因为我不知道这个问题是否有效。如果有人能解决我的疑问,我会很高兴。
基本上:调用如下方法有什么不同:
对象.方法名();
$('#element').methodname();
两种方式都可以调用,但是两者之间有什么不同,其中标准使第一类和第二类方法。它在核心 javascript 中也可用吗?
如果我有一个函数,是否可以始终进行 2 种类型的方法调用?
任何人都可以提供一些很好的参考来正确理解吗?
提前致谢。
第一种语法:
object.methodName();
表示要调用一个函数,methodName()
该函数被定义为 的属性object
。
第二种语法:
$('#element').methodname();
说调用一个函数$()
(为了使它工作)必须返回一个对象,然后调用methodname()
该返回的对象。
你说“双向调用是有效的” - 所以大概你有一些类似这样的代码:
var myObject = $('#element');
myObject.methodname();
这种将$()
函数结果存储在变量中的概念通常称为“缓存”jQuery 对象,如果您计划在该对象上调用很多方法,效率会更高,因为每次调用 jQuery$()
函数时都会创建另一个 jQuery目的。
“它在核心 javascript 中也可用吗?” 是的,如果您实现返回对象的函数。也就是说,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 的 Working With Objects文章是一个很好的起点(可以说使用对象是JS 基础,但显然我的意思是比这更基础的东西)。
差异非常微妙。
object.methodname();
这是 JavaScript 手头有对象的时候。
$('#element').methodname();
If you are using jQuery, you are asking jQuery to select the object that has the id of #element
. After that you invoke the method on the selected object.