2013-07-12 2 views
0

저는 C/C++/x86에서 웹 개발에 익숙합니다. 그것을 피하려고 노력하면서 Javascript (놀라움!)를 사용해야하는 것처럼 보입니다.Javascript의 프로토 타입 키워드 및 구현을 이해하기

글쎄, 내가 그것을 사용해야한다면, 무슨 일이 벌어지고 있는지 잘 이해할 것이다. 내가 C/C++을 x86/x86_64로 쉽게 매핑하여 무슨 일이 일어나고 있는지 파악하는 데 어려움을 겪었으므로 어렵다. 말할 것도없이 Javascript는 익숙해지는 완전히 다른 패러다임입니다.

그래서 프로토 타입 키워드는 무엇이며 어떻게 프로토 타입 상속을 구현합니까?

많은 호소력이있는 책과 가이드를 읽은 후에 예제를 살펴 보겠습니다. 모든 객체 (전역 객체 저장)에는 또 다른 객체 인 프로토 타입이 있습니다. 이러한 모든 객체가 어떻게 연결되어 있는지에 대한 배경에서 작동하는 매우 간단한 메커니즘이 있어야합니다.

12 세에게 말하는 "새로운 물체가 오래된 물체의 특성을 상속 받음"을 더 이상 듣지 않아도됩니다. 예를 들어, C++의 가상 테이블이 가상 함수의 작동 방식을 이해하는 방법을 알고 있습니다. 모든 것이 완벽합니다.

그렇다면 Javascript는 프로토 타이핑을 어떻게 사용합니까?

감사합니다.

+0

는 그래서 V8 소스를 읽어 보시기 바랍니다. 그리고 모든 구현이 같은 방식으로 구현되는 것은 아닙니다. 지금까지 당신이 그것을 과장 생각하는 것처럼 들립니다. –

+0

http://stackoverflow.com/questions/572897/how-does-javascript-prototype-work – lifetimes

+0

@Zenith는 이것을 읽었습니다. – gone

답변

0

prototypestatic으로 생각하십시오. prototype은 액세스 단어 일 뿐이며 액세스하려는 개체에 속성을 할당하거나 덮어 쓰는 것 외에는 의미가 없습니다. 단어는 prototype입니다.

0

prototype은 자바 스크립트의 언어 구문입니다. 상속에 대한 JavaScript의 접근 방식입니다.

JavaScript에서는 (ECMAScript6까지는 다른 주제이지만) 실제로는 classes이 아닙니다. 대신 객체의 인스턴스를 만들고 new 키워드를 사용하여 해당 객체의 하위 인스턴스를 만들 수 있습니다. 흥미롭게도

var parent = function() {}; 
parent.prototype.lastName = "Flynn"; 
var child = new parent(); 
console.log(child.lastName); //Outputs "Flynn" 

: : 예를 들어

parent.prototype.nationality = "American"; 
console.log(child.nationality); //Outputs "American"