返回封装在原型类型对象javascript中的HTML元素
如果我想返回一个封装在原型定义对象中的HTMLDOM元素,以便访问添加到原型中的方法,我将如何操作。 我正在努力实现的一个更具体的例子如下:返回封装在原型类型对象javascript中的HTML元素,javascript,Javascript,如果我想返回一个封装在原型定义对象中的HTMLDOM元素,以便访问添加到原型中的方法,我将如何操作。 我正在努力实现的一个更具体的例子如下: (function(window, document, undefined) { var i; var el; var Dome = function(selector, getAllMatches) { return Dome.core.init(selector, getAllMatches); };
(function(window, document, undefined) {
var i;
var el;
var Dome = function(selector, getAllMatches) {
return Dome.core.init(selector, getAllMatches);
};
Dome.core = Dome.prototype = {
constructor: Dome,
el: "",
init: function(selector, getAllMatches) {
if (typeof arguments[0] !== "undefined") {
this.el = getElement(selector);
if (this.el instanceof Dome){
return this.el;
}
else{
return this.el;
}
}
}
.....
})(window, document);
我试图实现的是返回,而不是这个。el是Dome的实例,这样我就可以访问它的方法。我知道jquery在这方面做得很好,但我没有太多的经验使用js an接近0的原型。听起来你想要一个
+编辑+
既然你问过jQuery是如何实现的,我只是简单地看了一下
因此,jQuery的主要工厂($,jQuery)是
之后,jQuery.fn.init将从jQuery.fn填充它的原型
因此,编辑我的原始答案以匹配此格式将是
function Dome(element){
this.element = element;
}
Dome.core = {
getElement: function(){
return this.element;
}
};
Dome.prototype = Dome.core;
Dome.factory = function(selector){
var el = getElement(selector);
return new Dome(el);
}
var d = Dome.factory('test');
alert(d.getElement());
听起来你想要一份工作
+编辑+
既然你问过jQuery是如何实现的,我只是简单地看了一下
因此,jQuery的主要工厂($,jQuery)是
之后,jQuery.fn.init将从jQuery.fn填充它的原型
因此,编辑我的原始答案以匹配此格式将是
function Dome(element){
this.element = element;
}
Dome.core = {
getElement: function(){
return this.element;
}
};
Dome.prototype = Dome.core;
Dome.factory = function(selector){
var el = getElement(selector);
return new Dome(el);
}
var d = Dome.factory('test');
alert(d.getElement());
将
返回这个代码>不适合您的需要?这将返回一个对象,而不是对象中包装的html元素,这与使用jquery时发生的情况不同jquery(element)将返回此内容代码>不适合您的需要?这将返回一个对象,而不是对象中包装的html元素,这与使用jquery(元素)时在jquery中发生的情况不同是的,我认为您是对的。然而我很好奇,jquery是如何实现的?我已经接受了你的答案,上周刚读到关于工厂模式的内容,但我没有想到要使用它。是的,我想你是对的。然而我很好奇,jquery是如何实现的?我看了一遍代码,但没有弄明白。thx很多,我已经接受了你的答案,只是上周读了关于工厂模式的内容,但我没有想到要使用它。
function Dome(element){
this.element = element;
}
Dome.core = {
getElement: function(){
return this.element;
}
};
Dome.prototype = Dome.core;
Dome.factory = function(selector){
var el = getElement(selector);
return new Dome(el);
}
var d = Dome.factory('test');
alert(d.getElement());