찾다

 >  Q&A  >  본문

javascript - 프로토타입 객체 프로토타입 관련 문제

위와 같이 예시 p1p2__proto__指向同一个原型对象Person.prototype,

실행p1.age=12,为啥p1.age没跟着变成12,而还是原来的0

習慣沉默習慣沉默2775일 전833

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

  • 漂亮男人

    漂亮男人2017-06-30 10:00:00

    p1.age并不会改变原型的值,p2没有age属性,会顺着原型链向上找,找到Person里面age,所以p2.page就是等于Person.prototype.age

    회신하다
    0
  • 阿神

    阿神2017-06-30 10:00:00

    p1.age프로토타입의 속성 대신 p1의 속성을 수정하기 때문입니다.

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-06-30 10:00:00

    p1.age = 12는 p1의 나이에만 값을 할당하고 Person의 나이에는 값을 할당하지 않으므로 p2의 나이는 할당되지 않으므로 프로토타입에서는 여전히 0입니다

    회신하다
    0
  • 为情所困

    为情所困2017-06-30 10:00:00

    p1.age = 12实际上是给p1添加了一个值为12的属性age,访问p1.age时会直接访问到这个属性而不会去原型链上找age,如果要实现p1 p2都被改变,可以这么写 p1.__proto__.age = 12

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