JavaSctipt의 프로토타입 원형 깊이 분석: 프로토타입의 속성은 복사본, 인용입니까, 아니면 고정된 검색 방식입니까?(2)prototype의 속성 증가
----02_프로토타입 속성 증가
//
<script type="text/javascript">
var Person = function()
{
};
Person.prototype.username = "zhangsan";
var person1 = new Person();
var person2 = new Person();
alert(" ,person1.username: "+person1.username);
alert(" ,person2.username: "+person2.username);
alert(" age ,person1.age: "+person1.age);
alert(" age ,person2.age: "+person2.age);
//
Person.prototype.age = new String("18");
alert(" age ,person1.age: "+person1.age);
alert(" age ,person2.age: "+person2.age);
</script>
//
출력: 실례를 만든 후,person1.username:zhangsan 실례를 만든 후person2.username:zhangsan이 원형에 속성age를 추가하기 전,person1.age:undefined 원형에 속성 증가 age 전,person2.age:undefined가 원형에 속성을 추가하면person1.age:18 원형에 속성age를 추가한 후person2.age:18 문제: 왜 원형에 속성을 추가한 후 2개의 실례person1,person2도 대응하는 속성을 추가했습니까?가설 1 던전: N개 실례가 생성될 때 원형의 속성을 가진 던전, 원형에 age 속성을 추가한 후, 이어서 N개 실례에 모두 age 속성을 추가합니다. 값은 원형과 같습니다(던전)
-N차 작업을 수행하려면 가능성이 높지 않습니다!가설 2 인용: N개의 실례가 생성될 때 모두 원형의 속성을 가진 인용, 원형에 age 속성을 추가한 후, 이어서 N개의 실례에 모두 age 속성(인용)을 추가합니다. 이때 Person.prototype.age와 person.age 참조 동일 객체 String("18")
-N차 작업을 수행하려면 가능성이 높지 않습니다!
3 고정 검색 방식을 가정합니다.
N개의 실례가 만들어졌을 때 원형과 같은 이름의 속성이 없습니다. 예를 들어person이 만들어졌을 때 그 자체는username 속성이 없습니다!원형에 age 속성을 추가한 후 N개의 실례에 age 속성이 없습니다.age의 경우 그 자체에 age 속성이 없기 때문에 고정된 검색 방식에 따라 찾습니다.
person1은 Person의 실례이기 때문에 Person을 찾습니다.prototype.age의 속성을 찾지 못하면 계속해서 상위 원형을 찾습니다. 여기서 js엔진은 Person을 찾았습니다.prototype.age 속성, 그래서 출력!
- 프로토타입만 수정하고 고정된 검색 방식으로 찾으면 이 예시를 해독할 수 있습니다!
전체 텍스트 되돌리기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Access Request, Session and Application in Struts2If we want to use request, Session and application in JSP, what should we do? We can obtain Map type objects such as Req...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.