JavaScript 정리 노트 (4)
13109 단어 JavaScript
1.3.1 함수 개체
자 바스 크 립 트 의 함수 도 대상 입 니 다.함수 대상 은 Function. prototype 에 연결 되 어 있 으 며, 이 원형 대상 자 체 는 Object. prototype 에 연결 되 어 있 습 니 다.모든 함수 대상 은 생 성 할 때 prototype 속성 이 있 습 니 다.그것 의 값 은 constructor 속성 을 가지 고 이 함수 의 대상 입 니 다.
function a(){};
a.prototype.constructor; // function a(){}
함수 의 차이 점 은 그것 이 호출 될 수 있다 는 것 이다.
a(); // a
1.3.2 편지 숫자 면 량
함수 대상 은 편지 숫자 면 을 통 해 만 듭 니 다:
var reduce = function(a, b){
return a - b;
}
1.3.3 호출
4 가지 호출 모드:
함수 가 대상 의 속성 으로 저 장 될 때 대상 이 라 고 부 르 는 방법 입 니 다.호출 되 었 을 때 this 가 이 대상 에 연결 되 었 습 니 다.
var obj = {
sum: 0,
add: function(num){
this.sum += num || 1;
}
}
obj.add();
obj.sum; // 1
obj.add(2);
obj.sum; // 3
this 를 통 해 이 대상 의 상하 문 방법 을 공공 방법 이 라 고 부른다.
함수 가 대상 의 속성 이 아 닐 때 이 함 수 는 함수 로 호출 됩 니 다:
function add(a, b){
return a + b;
}
var sum = add(1, 2);
sum; // 3
이 모드 에서 함 수 를 호출 할 때 this 는 전역 대상 에 연 결 됩 니 다.이것 은 언어 설계 상의 잘못 이다.우 리 는 보통 변 수 를 정의 해서 this 를 할당 합 니 다.보통 that 또는this。
obj.add2 = function(){
var that = this;
var a = function(){
that.sum = add(that.sum, that.sum);
}
a(); // 6
var b = function(){
this.sum = add(this.sum, this.sum);
}
b(); // undefined sum undefined
}
obj.add2();
구조 함수 약속 은 대문자 로 함 수 를 명명 하 는 함수 로 new 를 통 해 호출 되 지만 new 를 추가 하지 않 아 도 경고 하지 않 습 니 다. 이것 은 매우 아 픕 니 다.위 에 new 를 추가 하여 호출 할 때 이 함수 에 연 결 된 prototype 구성원 의 새 대상 을 기본적으로 만 들 고 this 도 이 새 대상 에 연 결 됩 니 다.
var Fn = function(value){
this.value = value;
};
Fn.prototype.getValue = function(){
return this.value;
}
var fn = new Fn(1001);
fn.getValue(); // 1001
apply 방법 은 호출 함수 에 매개 변수 배열 을 구축 합 니 다.this 값 도 선택 할 수 있 습 니 다.
var arr = [1, 2];
var sum = add.apply(this, arr);
sum; // 3
var sum2 = add.apply(null, arr);
sum2; // 3
var o = {
value: 2002
};
var value = Fn.prototype.getValue.apply(o);
value; // 2002
// apply this o , this.value o.value;
1.3.4 모든 함수 가 정 의 된 형식 매개 변 수 를 제외 하고 추가 적 인 두 개의 매개 변 수 를 받 습 니 다.
1.3.5 함수 호출 시 함수 매개 변수 개수 가 일치 하지 않 으 면 실행 오류 가 발생 하지 않 습 니 다. 많은 매개 변 수 는 무시 되 고 적은 매개 변 수 는 기본적으로 undefined 입 니 다.
function add3(a, b, c) {
console.log("" + a + b + c);
}
add3(1, 2, 3, 4); // 123
add3(1, 2); // 12undefined
제 블 로그 에 오신 것 을 환영 합 니 다 Amazhe --- 내용 과 개인 정리, 잘못 이 있 으 면 지적 을 환영 합 니 다.감사합니다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.