객체가 인스턴스화된 후 새로운 속성을 갖고 싶다면 프로토타입을 통해서만 추가할 수 있나요? 생성자를 수정할 수 없는 이유는 무엇입니까?
객체가 인스턴스화된 후에 객체의 속성과 메서드의 존재가 생성자와 아무런 관련이 없기 때문일까요?
大家讲道理2017-05-19 10:31:49
프로토타입을 프로토타입 체인이라고 합니다.
1. 객체가 인스턴스화되면 Object.name을 사용하여 직접 추가할 수 있습니다. 프로토타입 체인을 통해 추가된 것은 공용 속성이 추가된 것으로, 동일한 클래스 인스턴스를 통해 다른 개체에서 액세스할 수 있습니다.
2. 인스턴스화된 객체는 프로토타입 체인에 접근할 수 없습니다. 프로토타입 체인은 Class에서만 사용할 수 있으며, 프로토타입 체인의 속성과 메서드는 Class.prototype을 통해 추가됩니다. 생성자는 프로토타입 체인 메서드에도 속합니다. 인스턴스를 전달한 후 얻은 생성자를 수정할 수 있지만 Class의 생성자에는 영향을 미칠 수 없으며 Class.prototype이 변경되면 변경됩니다.
프로토타입 체인에 정의된 속성과 메서드를 사용하려는 인스턴스화된 객체의 경우 Object.name을 직접 사용할 수 있습니다.
가서 프로토타입 체인에 대해 읽어볼 수 있으며, Baidu에는 많은 프로토타입 체인이 있습니다.
저도 초보라서 부족한 점을 지적하고 싶습니다.