Javascript/jQuery-无论如何,要简化它或使其不那么迟钝

Javascript/jQuery-无论如何,要简化它或使其不那么迟钝,javascript,jquery,Javascript,Jquery,所以,我用一些原型方法设置了这个构造函数,因为我需要将行为(这个对象创建的)应用到一些不同的元素,我想知道是否有比下面更好的方法 var MAINFUNC = function(opts){ this.options = { item1 : 'somevalue' }, this.init(opts); } MAINFUNC.prototype = { someFunc1: function(){ // do stuff }, some

所以,我用一些原型方法设置了这个构造函数,因为我需要将行为(这个对象创建的)应用到一些不同的元素,我想知道是否有比下面更好的方法

var MAINFUNC = function(opts){
 this.options = {
      item1  : 'somevalue'
  },
  this.init(opts);
}

MAINFUNC.prototype = {
   someFunc1: function(){
       // do stuff
    },
   someFunc2: function(){
       // do stuff
    },
   someFunc3: function(){
         // do stuff
   },
init: function(data){
      $.extend(this.options, data);
      this.someFunc1();
     }
 };
var obj1Create =  new MAINFUNC({ someoptions });
var obj2Create = new MAINFUNC({ someoptions });
var obj2Create = new MAINFUNC({ someoptions });
因此,最后三个obj实例似乎有点迟钝。也许我是不正确的,但我认为有一种更精细的方法可以做到这一点。是的,每个obj*Create都表示一个diff元素,它需要MAINFUNC提供的行为

多谢各位

var MAINFUNC = function(opts)
{
   var m = Object.create(MAINFUNC.prototype);
   m.options = { ... };
   m.init(opts);
   return m;
};

var o = [{someoptions}, {someoptions}, {someoptions}].map(MAINFUNC);
// objects are all now in array
这种方法的一个附带好处是,无论您是否使用
new
,它都可以使
MAINFUNC
工作。这使得它更易于管理,尤其是对于收集函数


这种方法的一个附带好处是,无论您是否使用
new
,它都可以使
MAINFUNC
工作。这使得它更易于管理,尤其是使用收集函数。

如果术语
元素
的意思是
DOM元素
将您的代码放入jQuery插件中,这样您就可以编写
$(选择器)。myFuncPlugin(选项)
<代码>插件中的每个
循环都会创建多个实例我本来打算这样做的,但是这个功能并不完全符合插件的要求。使用将是最低限度的,不确定链接将是有用的,我在做什么。不过我明白你的意思。如果Plynx下面的答案对我不起作用,我可能会走这条路。谢谢Charlie。这不仅仅是关于链接,如果插件影响DOM元素,那么插件中暴露的元素就更重要了如果用
元素
这个词,你的意思是
DOM元素
把你的代码放到jQuery插件中,这样你就可以编写
$(选择器)。myFuncPlugin(选项)
<代码>插件中的每个
循环都会创建多个实例我本来打算这样做的,但是这个功能并不完全符合插件的要求。使用将是最低限度的,不确定链接将是有用的,我在做什么。不过我明白你的意思。如果Plynx下面的答案对我不起作用,我可能会走这条路。谢谢Charlie。这不仅仅是关于链接,如果插件影响DOM元素,那么插件中的元素就会暴露出来。我会试试看。谢谢我一经考试就接受。谢谢你的及时回复。Plynx-我有个问题要问你。您的方式(或我创建的方式)比使用jQuery插件方式有什么好处吗?警告-此MAINFUNC在整个站点上的使用有限。@JQuery插件方式允许您使用任意选择器并将其链接到您的函数中。但是你可以用
$('yourselector')做同样的事情无需制作插件。在
中,您只需对选择中的每个元素执行一些操作,例如与
MAINFUNC
交互(从您的示例中,我无法确切地知道它们应该如何交互,因此我无法说出其中的内容)。我将尝试一下。谢谢我一经考试就接受。谢谢你的及时回复。Plynx-我有个问题要问你。您的方式(或我创建的方式)比使用jQuery插件方式有什么好处吗?警告-此MAINFUNC在整个站点上的使用有限。@JQuery插件方式允许您使用任意选择器并将其链接到您的函数中。但是你可以用
$('yourselector')做同样的事情无需制作插件。在
中,您只需对选择中的每个元素执行一些操作,例如与
MAINFUNC
交互(从您的示例中,我无法确切说明它们应该如何交互,因此我无法说出其中的内容。)