> 웹 프론트엔드 > JS 튜토리얼 > Function.apply() 1부에 대한 간략한 토론------(함수 하이재킹 및 객체 복사)_javascript 기술

Function.apply() 1부에 대한 간략한 토론------(함수 하이재킹 및 객체 복사)_javascript 기술

WBOY
풀어 주다: 2016-05-16 19:23:39
원래의
1330명이 탐색했습니다.

객체 상속과 관련하여 일반적인 접근 방식은 복사 방법을 사용하는 것입니다: Object.extend

protpotype.js의 구현 방법 보기:

코드 복사 코드는 다음과 같습니다.
Object.extend = function(destination, source) {
for (property in source) {
Destination [property] = source[property ];
}
return Destination;
}

또한 덜 일반적인 방법도 있습니다:

apply. method can hijack ( <> 책에서 "hijacking"이라는 단어가 사용되었는데, 이는 매우 생생합니다.) 또 다른 객체의 메소드
는 다른 객체의 속성을 상속받습니다.
샘플 코드는 다음과 같습니다.
샘플 코드 적용
코드 복사 코드는 다음과 같습니다.
< script>

function Person(name,age){ //클래스 정의, human
this.name=name //Name
this.age=age // Age
this.sayhello=function(){alert("hello")}
}

function Print(){ //클래스 속성 표시
this.funcName="Print"
this.show =function(){ 
 var msg=[]
for(var key in this){
if (typeof(this[key])!="function") msg.push ([key," ; 이름, 나이, 학년, 학교){ //학생 클래스
Person.apply(this,arguments)
Print.apply(this,arguments)
this.grade=grade / /성적
이 .school=school                                                                                              ~                                                         tom",13,6,"Tsinghua Primary School")
s1.show()
s1.sayhello()
alert(s1. 기능 이름)

Student 클래스 원래는 메소드가 없었지만 Person.apply(this,arguments) 이후에는 Person 클래스의 sayhello 메소드와
의 모든 속성을 갖습니다. Print.apply(this,arguments) 후에 자동으로 show() 메소드를 얻습니다.


이 기사는 소개로서 적용(객체 상속 및 기능 하이재킹 측면에서) 사용법에 대한 간단한 데모만 제공합니다.
천천히 이해해 보세요.
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿