이 코드를 감안할 때? 재귀 호출을 작성하지 않는 이유는 무엇입니까?왜이 코드는 재귀를 발생시키지 않습니까? 정확히 어떻게 무엇을</p> <pre><code>function foo() { if (!foo) { //blah blah blah some code here foo = true; } } </code></pre> <p>:
답변
이것은 재귀를 만들 수 있습니다 :이
function foo()
{
if (!foo()) // <=== notice the()
{
//blah blah blah some code here
foo = true;
}
}
하지만를 괄호없이, foo
이 실행되지 않습니다. 테스트에서는 변수 foo
이 true로 평가되지 않고 부울 true
으로 바뀝니다. 이상한 코드이지만 재귀는 아닙니다. 단지 변수로 있는지 확인,
function foo() {
if (!foo)
{
//blah blah blah some code here
foo = true;
}
}
var f = foo;
foo = 0;
f(); // this would result in foo being true
옙, 나의 대답에서 내가 생각하고 있었던 좋은 예다. –
어떤 제정신 코더도 이런 종류의 코드를 쓰지 않기 때문에 즉시 시작하는 것은 쉽지 않습니다 ... –
저는 8 년 동안 JavaScript로 테스트 자동화 코딩을 해왔고, 오늘은 첫 번째입니다 나는이 구조를 본적이 있으며, 그것은 내 마음을 괴롭혔다. –
그 자체를 호출하지 : 코드는 다음과 같이 될 수 있기 foo
이 기능이라고 우리가 함수 내에서, 확실하지
주, 그 이름은 진실입니다. 함수의 이름을 변경할 수 있으며 foo는 호출 될 때까지 완전히 다른 것을 참조 할 수 있습니다.
그래서 명확하게하기 위해, 재귀 함수는 자신을 호출 할 때 발생function foo(){
foo();
}
반면 당신이 그냥 전화를 시도하지 않고 foo는의 현재 값을 찾고 일을하고 있습니다.
!foo //if foo is defined as a function or other truthy object, is true
- 1. 패턴 I 양식</p> <p><code>MM/DD/YYYY (FirstName LastName) Status Update: blah blah blah blah</code></p> 예컨대 <p>의 반복 패턴의 문자열이 문자열
- 2. 정규식 :</p> <pre><code>{{keywords: "blah blah", "blah, blah blah", "blah, blah some other text"}} </code></pre> <p>정규 표현식을 사용하여 어떻게 인용 키워드의 목록을 얻을 것이다 : 나는 후보 문자열이
- 3. 전역 정적 변수와 함수의 정적 변수 비교</p> <pre><code>static Foo foo; // ... foo.func(); </code></pre> <p>: 그리고 더</p> <pre><code>Foo& GetFoo(void) { static Foo foo; return foo; } // ... GetFoo().func(); </code></pre> <p>
- 4. 스프링에서 @Inject 인스턴스 <blah> 사용
- 5. Unix에서 "C : \ Blah \ Blah \ .. \ ... \ Blah"파일 삭제하기
- 6. <img alt="foo" />은 <img alt="foo"></img>과 동일합니까?
- 7. 빔 :</p> 내가 빨리 \ 각주 {*}를 삭제할 <pre><code>\item[1]\footnote{«footnote blah blah»} footnote blah blah. \item[2]\footnote{«blah blah footnote»} random text \item[3]\footnote{«this is not»} more random text </code></pre> <p>(즉 \ 각주 {«각주 저쩌구»이 포함
- 8. <foo*> 이상의 glob ('foo *')의 비교 이점은 무엇입니까?
- 9. Angular2 가져 오기 구문 : "import * as <foo>"vs "import {<foo>}"
- 10. 왜 개체가 반복의 내부와 외부에서 다릅니 까? 반복 내에서</p> <pre><code>p Foo # => nil </code></pre> <p>그러나 : <code>Foo</code> 새로 할당 된 객체를 참조의 <code>main</code> 환경에서</p> <pre><code>class Foo; end Foo = nil </code></pre> <p>:
- 11. 나는 오류가 나는 jhdf5 라이브러리에 따라 항아리를 컴파일하고, <code>LD_LIBRARY_PATH=$PWD/lib java -classpath ./target/scala-2.11/myassembly.jar -Djava.library.path=$PWD/lib net.myproject.mainClass blah blah blah</code></p> <p>으로 실행 시도 라이브러리
- 12. 등 I는 <code>foo</code>, <code>bar</code> 및 <code>baz</code> 올바르게 구현</p> <pre><code>module Foo where foo :: Moo -> Goo bar :: Car -> Far baz :: Can -> Haz </code></pre> <p>임의의 모듈이
- 13. 작성 방법 OfType <Foo<Bar>>()
- 14. 배쉬가 :</p> <pre><code>foo completely unintresting line bar foo [INFO] [#############] bar foo [INFO] [#######______] bar </code></pre> <p>가 나는 부분이 필요합니다 세 줄
- 15. 펄 정규식 : <code>"hello this is me. KEYWORD: blah"</code><br> 예 2 :
- 16. svn : 기존 dierctory <foo>의 URL이 예상 URL과 일치하지 않습니다. <foo>
- 17. <Foo extends Bar를 사용하는 일반 객체 인스턴스화 <Foo>>
- 18. STL map <string,FOO> vs지도 <int,FOO> 성능
- 19. 다른 모듈의 구조체를 사용할 때 가져올 내용은 무엇입니까? 내가 <code>use mod1::Foo;</code>을 쓴</p> <pre><code>pub struct Foo; impl Foo {} impl Drop for Foo { fn drop(&mut self) {} } </code></pre> <p></strong> file2.rs <strong>에서 :
- 20. .Net WMI <Blah> ChangeEvent 디렉터리를 모니터링하기 위해
- 21. PHP <?=foo() ?> 작동하지 않습니다.
- 22. typedef Foo <> Foo가 컴파일되지만 유효합니까?
- 23. 변환 개체 계층 내가 <code>Foo</code>의 생성자가</p> <pre><code>public Foo(string name, string discription){} </code></pre> <p>가 나는 구조를 가지고 데이터베이스 개체가있는 객체 배열 <code>foo[]</code>를 만들려면, 배열
- 24. 템플릿 클래스 Foo 메서드의 인수는 "Foo &"이고 "Foo <T>"입니까?
- 25. 각도 : 텍스트 문자열을 안티 패턴으로 관리하기 위해 ng-if를 사용합니까?</p> <pre><code><p ng-if="::verify">Blah blah verification</p> <p ng-if="::!verify">Blah blah contact us</p> </code></pre> <p>내가 각도에 비교적 새로운 해요 여전히 템플릿을 유지하는 가장 깨끗한 방법을 알아 내려고 노력하고 있어요 :
- 26. 은 내가 어떻게 할 수있는 나는 다음과 같은 URL</p> <p><code>www.site.com/index.php?key=blah</code></p> <p>내가 htaccess로</p> <p><code>www.site.com/blah</code></p> <p>를 사용하여 다음처럼 만들고 싶어했다 index.php를 숨기기 매개 변수 이름
- 27. JQuery와 선택 :</p> <pre><code><a name="foo">Foo</a> </code></pre> <p>내가 앵커 요소를 선택하는 방법 :이 HTML이있는 경우 jQuery를 새로운 이름
- 28. 앵커 요소는 내가이</p> <p><code>Some text here foo</code></p> <p>처럼, FF와 크롬에 기대처럼</p> <pre><code><p> Some text here <a href="#">foo</a></p> </code></pre> <p>그것은 나타나, IE
- 29. gsub ("BLAH", "", "BLAH \ WHAT") x에 백 슬래시가 표시되지 않습니까?
- 30. java --classpath가 CLASSPATH를 덮어 쓰거나 추가합니까? 나는 그런</p> <pre><code>java -cp bar.jar com.yourcompany.SomeMain </code></pre> <p>을 실행</p> <pre><code>CLASSPATH=/blah;/foo </code></pre> <p>이있는 경우
function-object는 * 호출/호출/적용 *해야합니다. 예 : '()'- 재귀가 발생합니다. JavaScript의 함수는 단지 객체라는 것을 기억하십시오. 'foo()'는 foo를 평가 한 다음 함수 연산자 ("foo"를 호출)를 적용하는 반면, 'foo'라는 표현식은 단순히 값 (여기서는 함수 객체)으로 평가됩니다. – user2246674