, new Function() , , function() {} . . . Javascript Java C . , .
, - , , - . , a = arguments[0]; b = arguments[1]; ..
$=function(b){return new Function('a,b,c,d,e,f,g,h,i,j', b);};
,
$=function(body) {
return function(a,b,c,d,e,f,g,h,i,j) { return eval(body); };
};
? , eval()... , . return. , , body , new Function ( ) .
,
var myeyes = $('a+b+c');
alert(myeyes(1,2,3));
, ? , , , .
'a+b+c'
? ... , , literal
var funcs = ['map', 'filter', 'every', 'some'];
for (var i=0; i<funcs.length; i++) {
(function() {
var name = funcs[i]
var _super = Array.prototype[name];
Array.prototype[name] = function() {
if (typeof arguments[0] == 'string') arguments[0] = $(arguments[0]);
return _super.apply(this, arguments);
};
}());
}
[1,2,3,4,5].map('a*a');
[1,2,3,4,5].map(function(a){return a*a;});
, Firefox Expression Closure
[1,2,3,4,5].map(function(a) a*a);
: http://jsbin.com/iyogu3/edit
, , eval monster. , Javascript function(){} . - ( ), , verbose, , . .