찾다

 >  Q&A  >  본문

javascript - 초보자님, 프로토타입 확장에 대한 기본적인 질문을 드리겠습니다. 몇 가지 안내를 해주실 수 있나요?

1. 세 번째 코드 줄이 이해되지 않습니다.
세 번째 줄은 super_robot에 프로토타입 객체로 추가하여 구현해야 합니다. super_robot添加 data作为原型对象。
那为什么不是 SuperRobot.__proto__=data;
而是say.__proto__=data; 그럼 왜 SuperRobot.__proto__=data;
가 아니고 say.__proto__=data;인가요??

2.🎜 으아아아
黄舟黄舟2799일 전530

모든 응답(3)나는 대답할 것이다

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 11:00:53

    으아아아

    이번에는 누구를 추가해야 할까요super等于什么?
    是不是等于Fun内声明的a?
    所以__proto_.

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 11:00:53

    이렇게 작성하는 것은 확장으로 간주할 수 없는 super_robot의 프로토타입 체인을 다시 작성하는 것과 같습니다. 원래 super_robot.__proto__는 Function.prototype을 가리켰고, 다시 작성한 후에는 super_robot.__proto__가 들어오는 데이터 개체를 가리킨다고 할 수 있습니다. 다시 작성한 후에는 super_robot을 더 이상 실제 함수로 간주할 수 없습니다. 이제 호출, 적용, 바인딩 등과 같은 함수 프로토타입의 메서드를 사용할 수 없습니다.

    으아악

    확장하면 say.__proto__.name = name, say.__proto__.age = age라고 써야 하는데 이는 Function.prototype.name = name, Function.prototype.age = age와 동일합니다. 함수 인스턴스에 액세스할 수 있으므로 일반적으로 이와 같이 확장하지 않는 것이 좋습니다

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 11:00:53

    SuperRobot은 단지 공장 기능일 뿐이며, 그것이 반환하는 것은 핵심입니다

    회신하다
    0
  • 취소회신하다