제 5 장 웹 프런트 엔드 개발 엔지니어 --JavaScript 고급 5-6 자바 스크립트 객체의 기능을 프로그래밍

                                                                               자바 스크립트 객체의 기능

 

이과 이야기하는 것입니다 :

  1. 자바 스크립트 객체 생성
  2. 자바 스크립트는 기본 작업 객체
  3. 자바 스크립트 함수 객체

                                                                                스피커 교사 : 교장

III. Function 객체

유사한 여러 객체 선언의 문제를 해결하기 위해, 우리는 중복 많은 양의를 해결하기 위해 공장 패턴이라는 방법, 개체를 인스턴스화이 방법입니다 사용할 수 있습니다.

CreateObject 함수 (이름, 나이)의 { // 기능 설정 인스턴스화

VAR OBJ = 새 개체 ();

obj.name = 이름;

obj.age = 나이;

obj.run = 함수 () {

'... 운영'this.name + this.age +를 반환;

};

OBJ를 반환;

}

 

CreateObject를 = VAR ( '리', 100)의 BOX1; // 첫 번째 인스턴스

= CreateObject를 VAR의 BOX2 ( "잭"200이다); // 번째 인스턴스

경고 (box1.run ());

경고 (box2.run ()); // 별도의 유지

 

공장 패턴이 문제의 반복 인스턴스를 해결하기 위해,하지만 문제가있다, 그것은 단순히 결국 개체의 인스턴스 무엇인지 알아낼 수 없기 때문에, 문제를 파악하는 것입니다.

경고 (대해서 typeof BOX1); //목적

경고 (객체 instanceof를 BOX1); //참된

 

ECMAScript를 생성자 (생성자)에 사용될 수있는 특정 개체를 생성하는데 사용될 수있다. Object 객체를 입력합니다.

박스 기능 (이름, 나이) { // 생성자 모드

this.name = 이름;

this.age = 나이;

this.run = 함수 () {

'... 운영'this.name + this.age +를 반환;

};

}

 

새로운 새로운 BOX1 = VAR ( '리', 100) 상자; // 새로운 새로운 상자 ()에

BOX2 = 새로운 상자 ( '잭', 200)이었다;

경고 (box1.run ());

경고 (박스 instanceof를 BOX1) 자신의 하위 상자의 // 분명히 인식

 

 

그들이 어디에서 왔는지, 즉, 생성자 방법을 사용하여 문제의 반복 인스턴스를 해결하기 위해, 또한 물체 인식의 문제를 해결하지만, 문제는 새 개체 ()가 아니라는 것이다, 왜 상자 ()이이 인스턴스를 할 수 있습니까?

생성자 방법 및 그 사용 다음을 제외한 공장 모드의 방법을 사용 :

개체 만들기 (새 개체 ()) 생성자 메서드는 표시되지 않습니다;

속성 및 방법은 직접 객체에 할당;

어떤 renturn 문이 없습니다.

 

이 방법은 약간의 생성자 사양을 가지고 :

1. 동일한 기능의 이름과 건설 자본의 인스턴스 이름 (PS : 필수 아니지만, 그렇게 쓰여진 도움 생성자와 정상적인 기능을 구분)

생성자에서 객체를 생성 2. 새 연산자를 사용해야합니다.

 

이제 생성자를 통해 개체를 만들 수 있습니다 그들이 새로운 개체에서 () 어떤 장소에서 실행하는 곳, 그 목적은 무엇입니까? 다음과 같이 구현 프로세스는 다음과 같습니다

생성자, 새로운 생성자 ()를 사용하는 경우) (새로운 오브젝트의 백그라운드에서 실행됩니다;

새로운 객체의 생성자의 범위 (즉, 새로운 객체 () 객체를 생성하기 위해),이 기능의 본체는 객체의 새로운 객체 아웃 ()을 나타낸다.

코드 생성자를 실행합니다;

새로운 객체 (배경에서 직접 수익을)를 돌려줍니다.

 

의 사용에 대해,이 현재 범위 객체의 실제 대표입니다. 이 창은 글로벌 범위에서 객체를 나타내는 경우, 생성자 본문에 객체 선언 현재의 생성자를 나타내는 경우.

각 상자 = 2;

는 Window.alert (this.box); // 글로벌, 창 대신

 

생성자와 일반 기능 사이의 유일한 차이는, 즉, 서로 다른 방법을 문의하십시오. 그러나, 생성자 함수는 또한, 우리는 그렇지 않으면 정상적인 기능입니다 전화 new 연산자를 사용해야합니다.

박스 상자 새로운 새 = VAR ( '리', 100); // 호출 구성 모드

경고 (box.run ());

 

박스 ( '리', 20); // 일반 모드 무효라고

 

var에 O = 새 개체 ();

Box.call (O, '잭', 200 인) 포즈 // 호출 객체

경고 (o.run ());

 

생성자 메소드 (또는 기능) 고찰 내부 문제는 속성 또는 두 인스턴스의 방법에서 제 모양은 동일하다.

새로운 새로운 BOX1 = VAR ( '리', 100) 상자; // 일치 배달

새로운 새로운 BOX2 = VAR ( '리', 100) 상자; // 상기 문헌

 

경보 (box1.name == box2.name) 는 true //는, 속성의 값은 같다

(box1.run == box2.run) 경보; // 거짓, 방법은 실제로 기준 주소

경보 (box1.run () == box2.run ()); // 참 값은, 상기 방법과 동일하다 동일한 매개 변수 전달 때문에

생성자는 대신에 더 증명 그들은 궁극적으로 결정하는 기준 어드레스, 고유의 속성을 동일한 효과를 제공한다 새로운 함수 () 메소드를 사용하는 방법 (또는 함수) 일 수있다.

박스 기능 (이름, 나이) { // 새로운 새로운 기능 () 고유성

this.name = 이름;

this.age = 나이;

this.run = 새로운 기능 ( "+ this.name this.age + '동작을 ..."반환 ");

}

 

추천

출처blog.csdn.net/wgf5845201314/article/details/92381075