>  기사  >  웹 프론트엔드  >  javascript 프로토타입 프로토타입 작업 Notes_javascript 기술

javascript 프로토타입 프로토타입 작업 Notes_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:40:091034검색
코드 복사 코드는 다음과 같습니다.

//var People={name:"xiong", 나이:15 };//var Person=function(user,age){
// this.name=user
// this.age=age
// this.say =function( ){alert("나는 " this.name "n" this.age);}
//}
//var Chair=function(name,salary){
// 사람 .call( this,name);
// }
//var Bill=new Person("Bill",15)
//var Hu=new Chair("후진타오"); 🎜>/ /Person.prototype.eat=function(){
// Alert("식사 중입니다")
// }
//Bill.eat()
function; Person(name ) //기본 클래스 생성자
{
this.name = name;

Person.prototype.SayHello = function() //프로토타입에 추가 기본 클래스 생성자 Method
{
alert("안녕하세요, 저는 " this.name입니다)

function Employee(이름, 급여) //하위 클래스 생성자
{
Person.call(this, name); //기본 클래스 생성자 호출
this.salary = 급여
}

function Xiong(name,age); > Employee.call(this,name);

   }

Employee.prototype = new Person(); //하위 클래스 프로토타입의 프로토타입으로 기본 클래스 객체를 생성합니다. 재미있는

Xiong.prototype=new Employee();

Employee.prototype.ShowMeTheMoney = function() //생성자의 프로토타입을 하위 클래스에 추가하고 메서드를 추가합니다
{
alert( this.name " $" this.salary);
};
var BillGates = new Person("Bill Gates") //기본 클래스 Person
var SteveJobs = new Employee(" Steve Jobs", 1234); //하위 클래스 Employee의 SteveJobs 객체 생성
var hiakuotiankong=new Xiong("Broad Sky")
var benbenxiong=new Xiong("Stupid Bear") ;

// BillGates.SayHello(); // 객체를 통해 프로토타입 메소드를 직접 호출
// hiakuotiankong.SayHello() // 하위 클래스 객체를 통해 기본 클래스 프로토타입 메소드를 직접 호출, 주의하세요!
benbenxiong.SayHello=function(){ //SayHello 메소드 프로토타입 숨기기
Alert("haha,I'm" this.name)
}
benbenxiong.SayHello(); >// SteveJobs.ShowMeTheMoney(); // 하위 클래스 객체를 통해 하위 클래스 프로토타입 메서드를 직접 호출합니다.
// Alert(BillGates.SayHello == SteveJobs.SayHello) // 표시: true, 프로토타입 메서드를 나타냅니다. shared
Xiong.prototype.Goodbye=function(){
Alert(this.name "Bye-bye");
benbenxiong.Goodbye()


JavaScript에서는 프로토타입은 사물이 부를 공유할 수 있을 뿐만 아니라, 뿌리와 조상을 추적하는
성격도 갖추고 있어 조상의 유산이 대대로 이어질 수 있습니다. 객체에서 속성을 읽거나 메소드를 호출할 때 객체 자체에
해당 속성이나 메소드가 없으면 연관된 프로토타입 객체에서 이를 찾습니다. 프로토타입과 연관된 이전 프로토타입이 발견되거나 추적 프로세스가 종료될 때까지 그곳에서 검색됩니다.

JavaScript에서는 객체의 속성 및 메서드 추적 메커니즘이 소위 프로토타입 체인을 통해 구현됩니다. 새로운
연산자를 사용하여 객체를 생성하면 생성자의 프로토타입 객체도 새로 생성된 객체에 할당되어 해당 객체의 내장 프로토타입
객체가 됩니다. 객체의 내장 프로토타입 객체는 외부 세계에 보이지 않아야 합니다. 일부 브라우저(예: Firefox)에서는 이
내장 프로토타입 객체에 액세스할 수 있지만 권장되지는 않습니다. 내장된 프로토타입 객체 자체도 객체이고 자신과 연관된 프로토타입 객체를 가지므로
소위 프로토타입 체인을 형성합니다.

프로토타입 체인의 마지막에는 Object 생성자의 프로토타입 속성이 가리키는 프로토타입 객체입니다. 이 프로토타입 객체
는 모든 객체 중 가장 오래된 조상입니다. 이 조상은 모든 객체가 본질적으로 가지고 있어야 하는 toString과 같은 메서드를 구현합니다. Function, Boolean, String, Date 및 RegExp 프로토타입과 같은 다른 내장
생성자는 모두 이 조상
에서 상속되지만 각각 고유한 속성과 메서드를 정의하므로 자손은 해당 특성을 보여줍니다. 해당 클랜.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.