javascript prototype 원형 조작 노트


//var People={name:"xiong",age:15};
//var Person=function(user,age){
//    this.name=user;
//    this.age=age;
//    this.say=function(){alert("I am "+this.name+"
"+this.age);}
//}
//var Chairman=function(name,salary){
//    Person.call(this,name);
//    }
//var Bill=new Person("Bill",15);
//var Hu=new Chairman("Hu Jintao");
//Person.prototype.eat=function(){
//    alert("I'm eating");
//    }
//Bill.eat();
function Person(name) //
{
this.name = name;
};

Person.prototype.SayHello = function() // prototype
{
alert("Hello, I'm " + this.name);
};

function Employee(name, salary) //
{
Person.call(this, name); //
this.salary = salary;
};

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

        }

Employee.prototype = new Person(); // ,

    Xiong.prototype=new Employee();

Employee.prototype.ShowMeTheMoney = function() // prototype
{
alert(this.name + " $" + this.salary);
};
var BillGates = new Person("Bill Gates"); // Person BillGates
var SteveJobs = new Employee("Steve Jobs", 1234); // Employee SteveJobs
     var hiakuotiankong=new Xiong(" ");
     var benbenxiong=new Xiong(" ");

// BillGates.SayHello(); // prototype
// hiakuotiankong.SayHello(); // prototype , !
     benbenxiong.SayHello=function(){ // SayHello
         alert("haha,I'm"+this.name);
}
         benbenxiong.SayHello();
// SteveJobs.ShowMeTheMoney(); // prototype
// alert(BillGates.SayHello == SteveJobs.SayHello); // :true, prototype
    Xiong.prototype.Goodbye=function(){
         alert(this.name+"Bye-bye");
        }
    benbenxiong.Goodbye();    
JavaScript 에서 prototype 은 대상 에 게 자신의 부 를 공유 할 수 있 을 뿐만 아니 라 prototype 은 조상 에 게 뿌리 를 내 리 는 천성 도 있어 선배 들 의 유산 을 대대로 물 려 줄 수 있다.한 대상 에 게 서 속성 이나 호출 방법 을 읽 을 때 이 대상 자체 에 이러한 속성 이나 방법 이 존재 하지 않 으 면 자신 과 관련 된 prototype 대상 에 게 가서 찾 습 니 다.프로 토 타 입 이 없 으 면 프로 토 타 입 자신 과 관련 된 선배 프로 토 타 입 을 찾 거나 트 레이스 과정 이 끝 날 때 까지 찾 아 본다.JavaScript 내부 에서 대상 의 속성 과 방법 트 레이스 체 제 는 이른바 prototype 체인 을 통 해 이 루어 집 니 다.new 연산 자 로 대상 을 구성 할 때 도 구조 함수 의 prototype 대상 을 새로 만 든 대상 에 게 할당 하여 이 대상 에 내 장 된 원형 대상 이 됩 니 다.대상 에 내 장 된 원형 대상 은 외부 에서 볼 수 없 을 것 입 니 다.비록 일부 브 라 우 저(예 를 들 어 Firefox)는 내 장 된 원형 대상 을 방문 할 수 있 지만 이렇게 하 는 것 을 권장 하지 않 습 니 다.내 장 된 원형 대상 자체 도 대상 이 고 자신 과 관련 된 원형 대상 도 있어 이른바 원형 체인 이 형성 되 었 다.프로 토 타 입 체인 의 맨 끝 에 Object 구조 함수 prototype 속성 이 가리 키 는 프로 토 타 입 대상 입 니 다.이 원형 대상 은 모든 대상 의 가장 오래된 조상 이다.이 조상 은 toString 등 모든 대상 이 천성적으로 가 져 야 할 방법 을 실현 했다.다른 내장 구조 함수,예 를 들 어 Function,Boolean,String,Date 와 RegExp 등 prototype 은 모두 이 선조 로부터 전승 되 었 으 나 그들 은 각자 자신의 속성 과 방법 을 정의 하여 그들의 자손 들 은 각자 종족 의 특징 을 나 타 냈 다.

좋은 웹페이지 즐겨찾기