因此,我为此构造函数设置了一些原型方法,并且因为我需要将行为(该对象创建的行为)应用于一些差异。元素,我想知道是否有比以下方法更好的方法。
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
这种方法的一个附带好处是,无论您是否使用
MAINFUNC
,它都能使new
正常工作。这使其更易于管理,尤其是在具有收集功能的情况下。关于javascript - Javascript/jQuery-简而言之或简化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14658398/