我需要一些功能(修改1功能)結合起來,但我不能做這種方式(它的工作原理,但對我不好):是否可以更容易地組合功能?
var a = function(){alert('a');};
var b = function(){alert('b');};
var c = a;
a = function(){c(); b();};
a();
然後我嘗試這樣做:
var a = function(){alert('a');};
var b = function(){alert('b');};
var rx = /^[\s\S]*\(([\s\S]*)\)\s*{([\s\S]*)}$/;
concat = function(f1,f2)
{
var q = f1.toString().replace(rx,'$1|$2').split('|');
var w = f2.toString().replace(rx,'$1|$2').split('|');
return (q[0]!=='' && w[0]!=='')?
new Function(q[0]+','+w[0],q[1]+w[1]):
(q[0]!=='')?
new Function(q[0],q[1]+w[1]):
new Function(w[0],q[1]+w[1]);
};
a = concat(a,b);
alert(a);
它的工作原理,但可能存在一個更簡單的方法?
性能或類似的問題,應張貼在http://codereview.stackexchange.com,而不是在這裏 – ajax333221 2012-01-30 02:06:10
你'concat'功能極爲較差的。 – SLaks 2012-01-30 02:07:32
它的例子=) – 3y3 2012-01-30 02:11:47