我目前正在学习本教程:jQuery入门
对于以下两个示例:
$("#orderedlist").find("li").each(function (i) {
$(this).append(" BAM! " + i);
});
$("#reset").click(function () {
$("form").each(function () {
this.reset();
});
});
Run Code Online (Sandbox Code Playgroud)
请注意,在第一个示例中,我们使用$(this)在每个li元素中附加一些文本.在第二个示例中,我们this在重置表单时直接使用.
$(this)似乎比使用频率更高this.
我的猜测是在第一个例子中,$()将每个li元素转换为理解append()函数的jQuery对象,而在第二个示例中reset()可以直接在表单上调用.
基本上我们需要$()特殊的jQuery功能.
它是否正确?
我已经使用Java很长一段时间了,很长一段时间我一直在使用GWT(Google Web Toolkit)进行Web开发.它的美妙之处在于我拥有了面向Java对象的构造,并且不会担心它如何被转换为GWT - 让Google来处理它.我对Javascript的了解已经足够,但并不是因为我可以用它进行大量的Web开发.后来我决定我必须对Javascript有更深入和更彻底的了解,这是一个真正的过山车 - 只是在我认为我得到了一些东西,有些东西来证明我错了 - 我只是被误解了.
有什么比stackoverflow更能表达我的关注的地方:我正在寻找一些资源和指向什么是Javascript等同于以下一些Java概念:
Class
instance of a class - object
Member variables
Getters
Setters
Abstract Class
Interface
Inheritance
Access Modifiers
Constructors
Run Code Online (Sandbox Code Playgroud)
我知道其中一些概念,但正如我所说 - 我相信我有一些概念上的困难.如果有人可以指出一个真正的javascript大师试图在这里查明这些概念,我将非常高兴.
该jQuery构造它的功能有点映射到另一个构造函数,jQuery.fn.init:
jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context, rootjQuery );
},
Run Code Online (Sandbox Code Playgroud)
我想知道为什么.
这个问题是非常相似的,但即使是回答者承认他们并没有真正回答这个问题,即为什么
这仅仅是出于组织目的吗?可能作者想要打包它,而不是将init函数放在jQuery构造函数定义中.
是否有任何理由.init()在原型上使用该方法? 我认为没有人会使用过$('.something')...init()...
这个问题表明它没有必要.init在原型上.
我刚刚发现这个问题,其中Dan Herbert的回答表明它只是出于结构/可读性的目的.
总之,我可以确认这个构造函数/原型映射搞笑 - 业务是不必要的吗? 在我看来,jQuery.fn.init功能可以去:
jQuery对象上(jQuery.initvs jQuery.fn.init)jQuery函数/构造函数定义中,替换new jQuery.fn.init并避免jQuery.fn.init.prototype = jQuery.fn映射.