2017-05-22 10 views
0

자바 스크립트에서 함수는 일류 개체

참조 : Functions함수의 속성 및 메서드를 얻는 방법은 무엇입니까? 그들은 단지 다른 객체와 같이 속성과 메서드를 가질 수 있기 때문에


따라서하는 방법을 함수 방법 간단한 개체가 console.log(testObj)에 걸리면 모든 세부 정보가 브라우저 콘솔로 이동합니다.
그대로, 기능을 얻는 방법 오브젝트 세부 사항. 기능 정보를 얻기 위해 노력


:

function foo() { 
    var a = 2; 
    return a; 
}; 

console.log(foo); 

위는 function foo(), 서명을 반환합니다.

예 : console.log(document);

+0

내가 잘못 될 수있다, 그것은 내가 (foo는에서 VAR 속성)에 대한 의견 '에 던지는 {(foo.hasOwnProperty은 (속성)) {} 경우}'얼마나 반복하는거야 그래서 그냥 추측 IE <9 –

+0

을 지원하려면 객체의 속성을 통해'console.log ('% O', foo);'를 시도하십시오. ['% % formatter] (https://console.spec.whatwg.org/#formatter) (3.e)는 콘솔에 함수를 일반 객체로 표시하도록 지시해야합니다. –

+0

@ jonathan-lonowski 결과는 콘솔에서 인수를 전달할 때와 마찬가지로 위와 같습니다. –

답변

1

사용 console.dir(). 그것은 일반적으로 확장 가능한 트리보기로, 속성과 그 값으로, 리스팅 확보, 인수 as a generic object을 표시하려면 콘솔을 지시

console.dir(foo); 

.

  1. 하자 객체가 적용 generic JavaScript object formatting와 항목 수.

브라우저를 지원하는 상기 %O formatter 동일한 결과를 줄 것이다.

console.log('%O', foo); 
+0

나는'console.log (foo.prototype)'을 시도했다. 확인하고 대답에 추가하라! –

+1

@forweb 함수가 다른 객체의 생성자로 사용되는 경우 도움이 될 수 있습니다. 사용자의 질문에서 제안하지는 않았지만. 또한,'prototype'은'console.dir (foo);'에서 찾아 볼 수 있습니다. –

2

당신의 함수는 속성이 없습니다.

고유 한 열거 가능 속성을 얻으려면 Object.keys을 사용할 수 있습니다. document의 모든 속성에 대한

function foo() { 
 
    var a = 2; 
 
    return a; 
 
}; 
 
foo.bar = function (x) { console.log(x); }; 
 
foo.baz = 42; 
 

 
console.log(Object.keys(foo)); 
 
console.log(foo.toString());

, 당신은 for ... in 문을 사용할 수 있습니다.

var k; 
 
for (k in document) { 
 
    console.log(k); 
 
}
변수로서의 기능의

+0

참고 :'Object.keys()'는 ES5에 정의되어 있으며 일부 브라우저에서는 사용할 수 없을 수도 있습니다. 출처 : [Object.keys() MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) –

+0

@Nina Scholz, 실제로 시도하고 있지만 브라우저 콘솔에서 모든 세부 정보를 얻으려면'console.log (document)'로 모든 메소드, 속성 등이 있어야합니다. –

+0

@ Nina-Scholz 글쎄, 나는 하나씩 속성을 얻는 방법을 말하지 않고, 나는 단지'console.log (document)'또는'console.log (anyObject)'의 동작을 물어 보는 중이며, 함수 객체가 필요하다. –

0

생각한다. Javascript는 호출 될 때 선언 된 전체를 제공합니다. 변수를 가져 오려면 함수에서 선언 된 변수를 변경해야합니다. 예를 들어 : console.log() 대신

var a = 2; 
function foo(){ 
    a = 4; 
} 
console.log(a); //would give you the desired result.