I doubt it.
The engine which parses and executes the javascript is on the client's browser, and as such cannot be modified or changed by any website (I would hope).
Potentially you could use javascript supported types and syntax to describe a lambda expression and then have your own javascript library which expands it to valid javascript calls.
However, it would not be that useful since javascript functions are already super flexible. Your code above in valid JS would look like the equivalent c# delegate:
var x = myJsObjCollection.Where(function() { if (this.ID == 2) return this; });
Which isn't a whole lot more work to type.
Update
To take Bob's Idea a couple steps further, you could potentially write something like this:
function lambda(vName, comparison)
{
var exp = new RegExp("\\b" + vName + "\\.", "g");
comparison = comparison.replace(exp, "arg.");
return function(arg) {
var result;
eval("result = " + comparison + ";");
return result;
};
}
Then your Where function would look something like:
Array.prototype.Where = function(lambdaFunc) {
var matches = [];
for (var i in this)
{
if (lambdaFunc(this[i]))
matches[matches.length] = this[i]
}
return matches;
};
And you could call it:
var x = myJsObjCollection.Where(lambda("a", "a.ID == 2"));
Working example at http://jsbin.com/ifufu/2/edit.