2011-09-10 2 views
0

스택 오버플로, Google 및 Google 코드를 통해 이틀 동안 답변을 검색했지만이 질문에 대한 답변을 찾을 수 없습니다.Chrome 및 Firefox 콘솔에서 '정의되지 않은'통화를 삭제할 수 있습니까?

var profile1 = { 
one: "1", 
two: "2" 
} 

var profile2 = { 
one: "3", 
two: "4" 
} 

function runLoop() { 
console.log(this.one); 
} 

profile1.loop = runLoop; 
profile2.loop = runLoop; 

profile1.loop(); 

그래서 profile1.loop()이 경우에 잘 실행하고 "1"의 문자열 값을 반환합니다 그래서

나는 JS있어

이 비슷한 개체를 ... 간다 듣는다. 하지만 Chrome이나 FF의 콘솔에서 실행하려고하면 "1"은 계속 반환되지만 "정의되지 않은"메시지를 보냅니다.

여기를 고칠 수 있습니까? 아니면 여기에서 내 꼬리를 쫓고 있습니까? 이 질문에 대한 답변이 SO에있는 경우 게시하십시오.

+0

왜 수정해야합니까? 콘솔이 반환 값을 자동으로 출력하는 것을 싫어한다면 http://jsbin.com 또는 http://jsfiddle.net을 사용하여 코드를 테스트해야합니다. – user113716

+0

프레임을 사용하고 있습니까? http://jsfiddle.net 또는 이와 비슷한 것은? – kzh

답변

2

내가 해결하기 위해 아무것도 당신이 당신의 꼬리를 쫓는하고 말할 것입니다. 콘솔에서 'undefined'라는 단어를보고 싶지 않으면보고 싶은 함수에서 아무 것도 반환 할 수 없습니다.

function runLoop() { 
    console.log(this.one); 
    return 'loop complete!!!!'; 
} 

> profile1.loop(); 
1 
'loop complete!!!!' 
+0

numbers1311407 및 cheeken : 둘 다 제안되었습니다. 고맙습니다. 많은 도움을! – kaidez

3

콘솔에 undefined이 표시되면 방금 평가 한 문구가 값을 반환하지 않았다는 의미입니다. 따라서 평가하는 것은 여러분이 말하는 것에도 불구하고 가치를 반환하지 않는 것입니다.

여기서 혼란은 콘솔에 this.one을 쓰는 것이고, return이 아니라는 것입니다.

대신을 시도해보십시오

function runLoop() { 
    return this.one; 
} 
+0

numbers1311407 및 cheeken : 둘 다 제안되었습니다. 고맙습니다. 많은 도움을! – kaidez

관련 문제