返回封装在原型类型对象javascript中的HTML元素

返回封装在原型类型对象javascript中的HTML元素,javascript,Javascript,如果我想返回一个封装在原型定义对象中的HTMLDOM元素,以便访问添加到原型中的方法,我将如何操作。 我正在努力实现的一个更具体的例子如下: (function(window, document, undefined) { var i; var el; var Dome = function(selector, getAllMatches) { return Dome.core.init(selector, getAllMatches); };

如果我想返回一个封装在原型定义对象中的HTMLDOM元素,以便访问添加到原型中的方法,我将如何操作。 我正在努力实现的一个更具体的例子如下:

(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());