JS 깊이 이해 (3) 대상 지향
5659 단어 JS
봉인
패키지: 디 테 일 숨 기기
프로 토 타 입 체인: 대상 과 대상 this: 대상 은 함수 (JS 에서 대상 함수 와 관계 가 없습니다. JS 의 아버 지 는 this 를 통 해 강제로 관계 가 있 습 니 다.) 함 수 는 대상 의 부속품 이 아 닙 니 다.
이것 에 대하 여:
fn(this,arguments)
__proto__
봉 인 된 사상 약정 이니셜 대문자 로 사용자 정의 return 을 무시 하지 마 십시오.JS 로 자바 대상 자바 클래스 구현:
//
function Human(options){
this.name = options.name
this. = options.
}
Human.prototype.eat = function(){}
Human.prototype.drink = function(){}
Human.prototype.poo = function(){}
function Soldier(options){
// this.__proto__ = Soldier.prototype
Human.call(this, options)
this.ID = options.ID
this. = 42
}
// createSoldier.prototype = {constructor: createSoldier}
// ie
// function fakeHuman(){}
// fakeHuman.prototype = Human.prototype
// Soldier.prototype = new fakeHuman()
// no-ie
Soldier.prototype = Object.create(Human.prototype)
//
// Soldier.prototype.__proto__ === Human.prototype
Soldier.prototype. = " "
Soldier.prototype. = 5
Soldier.prototype. = function(){ /* */},
Soldier.prototype. = function(){ /* */ },
Soldier.prototype. = function(){ /*Go die*/ },
Soldier.prototype. = function(){ /* */ },
Soldier.prototype. = function(){ /* */ }
// Soldier.prototype.__proto__ = Human.prototype
var s = new Soldier({name: ' ', :'yellow', ID: 1})
// 1. __proto__
// Soldier.prototype.__proto__ = Human.prototype
// Soldier.prototype.__proto__ === this.__proto__ === Human.prototype
// class
class Human{
constructor(options){
this.name = options.name
this. = options.
}
eat(){}
drink(){}
poon(){}
}
class Soldier extends Human{
constructor(options){
super(options)
this.ID = options.ID
this. = 42
this. = " "
this. = 5
}
(){ /* */}
(){ /* */ }
(){ /*Go die*/ }
(){ /* */ }
(){ /* */ }
}
var s = new Soldier({name: ' ', :'yellow', ID: 1})
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JS 판단 수조 네 가지 실현 방법 상세그러면 본고는 주로 몇 가지 판단 방식과 방식 판단의 원리를 바탕으로 문제가 있는지 토론하고자 한다. 예를 들어 html에 여러 개의 iframe 대상이 있으면 instanceof의 검증 결과가 기대에 부합되지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.