를 참조하십시오.
자바 스크립트를 구문 분석하고 실행하는 엔진은 클라이언트의 브라우저에 있으며, 따라서 어떤 웹 사이트에서도 수정하거나 변경할 수 없습니다 (희망 사항).
잠재적으로 당신은 람다 표현식을 기술하기 위해 자바 스크립트 지원 유형과 구문을 사용할 수 있으며 유효한 자바 스크립트 호출로 그것을 확장하는 자신의 자바 스크립트 라이브러리를 가질 수 있습니다.
그러나 javascript 기능이 이미 매우 유연하므로 유용하지 않습니다. 유효한 JS에서 위의 코드는 동일한 C# 대리자처럼 보입니다.
var x = myJsObjCollection.Where(function() { if (this.ID == 2) return this; });
어떤 형식으로도 작업 할 필요가 없습니다.
업데이트
잠재적으로 이런 걸 쓸 수있는, 몇 단계를 더 Bob's Idea을하려면 다음
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;
};
}
당신의 기능과 같이 보일 것이다 장소 :
Array.prototype.Where = function(lambdaFunc) {
var matches = [];
for (var i in this)
{
if (lambdaFunc(this[i]))
matches[matches.length] = this[i]
}
return matches;
};
을 그리고 전화하실 수 있습니다 :
var x = myJsObjCollection.Where(lambda("a", "a.ID == 2"));
작업 예제는 http://jsbin.com/ifufu/2/edit입니다.
쿨. 당신은 또한 "a => a.ID === 2"와 같은 문자열로 람다 인수를 남겨두고 "=>"로 나눌 수 있도록 split을 호출 할 수 있습니다 ... 멀리 떨어진 공간을 잘라 내기 위해 구문 분석이 필요할 수도 있습니다 – Bob