I 매개 변수로 객체를 반환하는 익명 함수를 통과 적용 자바 스크립트
1) var x = {};
x.data = {name: 'name', lname: 'lname'};
x.someOtherData = ['blah','blah','irrelevant'];
aFunction(x);
그래서 내가 문 위 그룹을 여러 번 호출 다음 코드를 가지고, 당연히 중요되는 문장의 순서. 나는 때때로 나에게 두통이 많이 발생했습니다하는 마지막 문 aFunction (X)를 수행하는 것을 잊지, 그래서 수행 한 다음 작동
2) aFunction(function(){
var x = {};
x.data = {name: 'name', lname: 'lname'};
x.someOtherData = ['blah','blah','irrelevant'];
return x;
}());
과에서 시행하는 방법이 있다면 궁금했다 내 함수 메서드 인 aFunction은 전달되는 매개 변수가 익명의 함수 여야합니다. 나는 내가 위의 검사가 작동 다음과 작업을 수행 할 수 있습니다 알고있는 다음은 분명히
3) function aFunction(x) {
if(x.constructor == Function) {
alert('yay you're doing it right');
} else {
alert('nay, you're doing it wrong'); //this is what happens given that x.constructor == Object
}
}
작동하지 않습니다 그래서 나는 익명 함수에서 객체를 반환하고,하지만 난 aFunction 인수 안에 내 모든 논리를 둘러싸 싶습니다 코드 스 니펫 2와 마찬가지로 괄호 안에 :
4) var z = function(){
var x = {};
x.data = {name: 'name', lname: 'lname'};
x.someOtherData = ['blah','blah','irrelevant'];
return x;
};
aFunction(z);
아이디어가 있습니까?
업데이트 :
신경 쓰지 마세요. 내가 한 것처럼 익명의 함수를 즉시 호출 할 수는 없으며 aFunction 메서드에서 호출 할 수 있습니다. 물론 스택 오버플로에서 문제를 작성하여 문제와 솔루션이 더 명확 해집니다. 다른 사람들이 비슷한 문제를 어떻게 풀어 낼 수 있는지 아직도 열려 있습니다. 디자인 패턴 등
솔루션 :
aFunction(function(){
var x = {};
x.data = {name: 'name', lname: 'lname'};
x.someOtherData = ['blah','blah','irrelevant'];
return x;
}); 내 기능 방법, aFunction
에 적용하는 방법이 있다면
function aFunction(x) {
if(x.constructor == Function) {
alert('yay you're doing it right');
x(); //call it here
} else {
alert('nay, you're doing it wrong');
}
}
나는 완전히 이해하고 있는지 모르겠다 - 옵션 # 4를 원하지만 전화에서'function() {...}'을 사용하고 싶습니까? 그렇게하면 익명 함수 "inside aFunction argument"를 전달하게됩니다. – pimvdb
그건 그렇고,'aFunction ({data : {...}, someOtherData : [...]})); – pimvdb