javascript gurus! 나는이 질문에 대한 제목이 다소 혼란 스러울 수도 있음을 알고 있습니다. 그러나 나는 그것을 어떻게 설명하는지 잘 모른다. 함수가 다른 함수의 인수로 호출되는지 어떻게 알 수 있습니까?
그래서 내가 그냥 예를 들어 줄 수 있습니다 : 그것은 그것의 자신의 호출 것처럼 아닌 다른 함수의 인자로 불리는 경우 가function foo(txt){
return "Hello " + txt);
}
function bar(txt){
if(/* bar is called as an argument */) return txt;
if(/* bar is called normally */) return "Bar";
}
foo(bar("world!")); //Returns "Hello World";
bar("world!"); //Returns "Bar";
나는 다른 무언가를 할 수있는 바() 할 수 있습니다.
bar()가 다른 함수의 인자인지 아닌지를 알 수없는 것처럼 보입니다. 브라우저가 foo (bar ("world!"))를 실행할 때 보이기 때문입니다. bar ("world!")를 먼저 실행 한 다음 bar()의 결과가 무엇이든간에 foo()를 제공합니다.
나는 foo()가 호출하고 있다고 생각했기 때문에 bar() 호출 스택을 확인할 수 있다고 생각했다. 하지만 foo()가 호출되기 전에 foo()와 같은 함수에 의해 호출됩니다.
나는 이런 느낌이 들기 시작했다.
편집 : 분명히 대부분의 사람들은 왜 내가 이것을하고 싶어하는지 혼란 스럽습니다.
저는 직접 HTML 요소를 작성하는 기능을 제공합니다. 나는 함수를 호출 그냥 내가 그들에 첨부 할 부모 요소와 태그 이름의 무리를 전달하며 해당 태그를 만들고이 3 개 세포를 만들 것이다 부모 요소
obj = c(tableElement,"td","td","td")
로 추가 할 수 있습니다 그들을 내 식탁에 붙이세요. 그러나 아무것도 돌려주지 않을 것이다. 그래서 :
obj = undefined
하지만이 원래 코드를 변경하는 경우 becuase 그 괜찮아 :
obj = c(tableElement,"td","td",true,"td")
다음은 같은 일을 할 것입니다. 대신 obj에 두 번째 셀을 전달하여 나중에 해당 셀을 쉽게 다시 사용할 수 있습니다.
자바 스크립트를 사용하여 나중에 대부분 조작 할 필요가없는 것들을 많이 만들 때 편리합니다.
요소를 중첩하는 기능을 추가하기 전까지는 모두 잘 작동합니다. EX : 이것은 실제로 잘 작동
obj = c(tableElement,"tr",c("td",true,"td",true,"td",true),"tr",true)
출력한다 :
<table>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr></tr>
</table>
와 OBJ = 번째 행 요소 만.
이제 모든 것을 수행하려고하는 속임수입니다. 내 중첩 c() 함수에서 TRUE 인수가 필요하지 않습니다. 그들은 무엇이든지간에 요구되기 때문에 필요하지 않습니다. 내가 알기 위해 어떤 방법을 가졌다면 중첩 된 것입니다. 그러면 참된 인수를 무시할 수 있고 코드가 훨씬 간결해질 것입니다.
중첩 된 셀 중 하나를 obj 변수에도 반환 할 수 있어야합니다.
내 유일한 옵션은 임베디드 요소 작성자로 사용하기 위해 조금 다르게 작동하는 두 번째 기능을 만드는 것입니다.
하지만 함수를 인수로 전달하지 않고 함수를 호출하고 인수로 반환 된 문자열을 전달하면 괄호를 추가하면 함수를 인수로 전달할 수 있습니다 do'foo (bar); – adeneo
왜 이렇게하고 싶지는 모르겠다. – soktinpk
지금 당장은 그것을 얻을 수있을 것입니다. 그리고 그럴 수는 없지만,'bar' 함수는 함수 foo와 관련하여 어떤 식 으로든 호출되는 것을 전혀 모릅니다. – adeneo