저는 자바 스크립트를 배우면서 객체가 이름/값 쌍의 모음임을 이해합니다. 예를 들어, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects함수 개체는 어떻게되지만 이름/값 쌍이 아닌가요?
An object is a collection of properties, and a property is an association between a name and a value.
에서 직접 촬영 그리고 기능도 오브젝트 것을 알고있다. 예를 들어, 내가 할 수있는 :
function myFunc() { return "I'm a function"; }
myFunc.name = "Bob";
및
myFunc.name
은 "밥"을 인쇄합니다.
myFunc
은 이름/값 쌍하지 않은
function myFunc() { return "I'm a function"; }
인쇄 할 그러나
; 그것은 함수입니다.
내가 좋아하는 뭔가를했다면 반면 :
var myObj = { prop1: "hello", prop2: "world" }
myObj
그래서 내가 조금 기능이 오브젝트가와 개체는 이름/값 쌍 모음입니다 것을 조정하는 방법에 대해 혼란 스러워요
Object {prop1: "hello", prop2: "world"}
를 인쇄합니다 , 함수는 이름/값 쌍의 콜렉션이 아닙니다.
객체에는 객체를 문자열로 렌더링하는 방법을 제어하는'.toString()'속성이 있습니다. 또한 개발자 콘솔은 원하는대로 할 수 있습니다. 함수는 사실 실제 객체입니다. 객체의 본질은 문자열로 변환되거나 콘솔로 덤프 될 때 어떤 모습으로 보이는지에 달려 있지 않습니다. – Pointy
그러나 콘솔에 표시되는 방식을 무시합니다. 나는 여전히 "함수는 객체이고 객체는 이름/값 쌍의 집합"이라는 것을 이해하지 못합니다. 어떻게 함수 -> 이름/값 쌍을 볼 수 없습니다. – dursk
@mattm'var foo = function() {}; foo.keyName = "value";'foo'가 이름/값을 가진 속성을 갖게합니다. 원하는만큼 속성을 추가하여 이름/값 쌍의 컬렉션을 만들 수 있습니다. – apsillers