このコードには関数式が多すぎるため、単純化したいのですが、方法がわかりません。
(function(a, b) {
for (a in b = a.prototype)(function(c) {
b[a] = function() {
c.apply(this, arguments);
return this
}
})(b[a])
})(Element);
このコードには関数式が多すぎるため、単純化したいのですが、方法がわかりません。
(function(a, b) {
for (a in b = a.prototype)(function(c) {
b[a] = function() {
c.apply(this, arguments);
return this
}
})(b[a])
})(Element);
関数構文が使用される回数は同じですが、ループから IIFE を削除して名前付き関数にすることで、作成される関数の数を減らすことができます...
(function(type) {
var proto = type.prototype,
fn;
function createChainable(proto_func) {
return function() {
proto_func.apply(this, arguments);
return this;
};
}
for (fn in proto)
proto[fn] = createChainable(proto[fn]);
})(Element);
また、その手動の難読化も取り除きました。その必要はありません。
外側の IIFE は、グローバル変数を防ぐためのものです。あなたはそれを取り除くことができますが、それは地球規模の汚染につながります.
それでもよければ、最初と最後の行を削除して、 に置き換えtype.prototype
てElement.prototype
ください。