gpt4 book ai didi

Javascript/jQuery - 无论如何要简写这个或者不那么迟钝

转载 作者:行者123 更新时间:2023-11-30 10:34:50 27 4
gpt4 key购买 nike

所以,我用一些原型(prototype)方法设置了这个构造函数,因为我需要将行为(这个对象创建的)应用于一些差异。元素,我想知道是否有比执行以下操作更好的方法。

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 正常工作。这使得它更易于管理,尤其是在收集功能方面。

关于Javascript/jQuery - 无论如何要简写这个或者不那么迟钝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14658398/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com