Javascript 방법란?Javascript 메서드 설명서
1.방법이 무엇인가
정규 함수를 정의하고 호출합니다.
function greet(who) {
return `Hello, ${who}!`;
}
greet('World');
function 키워드 뒤에 이름, 매개변수 및 바디: function greet (who) {...}일반 함수 정의를 만듭니다.greet ("World") 는 일반적인 함수 호출입니다.함수greet('World')는 매개 변수의 데이터를 받아들인다.
만약 누가 대상의 속성이라면?대상의 속성에 쉽게 접근하려면 함수를 대상에 추가할 수 있습니다. 다시 말하면 방법을 만들 수 있습니다.
Google은 greet () 를 대상 세계의 한 방법으로 삼을 것입니다.
const world = {
who: 'World',
greet() { return `Hello, ${this.who}!`; }}
world.greet();
greet() { ... }
은 현재 세계적인 대상의 방법이다.세계 1greet () 는 일종의 방법으로 호출된다.greet () 방법 내부에서 이 방법이 속하는 대상인 월드를 가리킨다.그게 왜?who 표현식 접근 속성 who.
이 또한 컨텍스트라고도 합니다.
컨텍스트는 선택 사항입니다.
이전 예에서는 이 메서드가 속한 객체에 액세스하기 위해 이 메서드를 사용했지만 JavaScript에서는 이 메서드를 강제로 사용하지 않았습니다.
따라서 객체를 메소드의 네임스페이스로 사용할 수 있습니다.
const namespace = {
greet(who) {
return `Hello, ${who}!`;
},
farewell(who) {
return `Good bye, ${who}!`;
}
}
namespace.greet('World');
namespace.farewell('World');
namespace는 두 가지 방법을 포함하는 대상: namespace.greet()
과 namespace.farewell()
이다.이러한 방법은 이 명칭 공간을 사용하지 않고 명칭 공간은 유사한 방법의 소유자로 충당한다.
2. 개체 문자법
이전 장과 같이 객체 텍스트에서 방법을 직접 정의할 수 있습니다.
const world = {
who: 'World',
greet() { return `Hello, ${this.who}!`; }};
world.greet();
greet() { .... }
은 대상 텍스트에 정의된 방법입니다.이러한 유형의 정의를 속기 방법 정의(ES2015부터 제공)라고 합니다.구문을 정의하는 긴 방법도 있습니다.
const world = {
who: 'World',
greet: function() { return `Hello, ${this.who}!`; }}
world.greet();
greet: function() { ... }
은 방법의 정의이다.사칭과 function
키워드가 하나 더 있습니다.동적 추가 방법
이 방법은 단지 대상 속성으로 저장된 함수일 뿐이다.이것이 바로 객체에 동적으로 추가할 수 있는 이유입니다.
const world = {
who: 'World',
greet() {
return `Hello, ${this.who}!`;
}
};
world.farewell = function () {
return `Good bye, ${this.who}!`;
}
world.farewell();
world
대상은 처음에는 방법이 없었습니다. farewell
.동적으로 추가됩니다.동적 추가 방법은 문제 없는 방법으로 호출할 수 있습니다:
world.farewell()
.3. 교실 교수법
JavaScript에서
class
구문은 인스턴스의 템플릿으로 사용되는 클래스를 정의합니다.클래스에는 다음과 같은 방법도 있습니다.
class Greeter {
constructor(who) {
this.who = who;
}
greet() { console.log(this === myGreeter); return `Hello, ${this.who}!`; }}
const myGreeter = new Greeter('World');
myGreeter.greet();
greet() { ... }
은 클래스 내부에서 정의하는 방법이다.새 연산자 (예:
myGreeter = new Greeter('World')
) 를 사용하여 클래스의 실례를 만들 때마다, 생성된 실례에서 방법을 호출할 수 있습니다.myGreeter.greet()
은 어떻게 실례적으로 방법greet()를 호출합니까?중요한 것은 이 방법의 내부는 실례 자체와 같다. 이것은 myGreeter
방법 내부의 greet() { ... }
과 같다.4. 방법을 어떻게 사용하는가
4.1 방법 호출
JavaScript는 특히 흥미로운 것은 대상이나 클래스에 정의된 방법이 작업의 절반이라는 것이다.상하문에서 이 방법을 유지하려면 반드시 이 방법을... 방법으로 호출해야 한다.
왜 그게 중요한지 말해줄게.
위에
greet()
방법이 있는 세계 대상을 생각해 보세요.this
을 방법과 일반 함수로 호출할 때 greet()
의 값을 검사해 봅시다.const world = {
who: 'World',
greet() {
console.log(this === world); return `Hello, ${this.who}!`;
}
};
world.greet();
const greetFunc = world.greet;
greetFunc();
world.greet()
은 하나의 방법으로 호출된다.대상 세계, 뒤에 점 하나.마지막으로 방법 자체다. 이것이 바로 방법이 사용되는 이유다.greetFunc
의 기능은 세계와 같다.안부를 묻다.그러나 일반 함수 greetFunc()
으로 호출될 때 이 inside greet () 는 세계 대상이 아니라 전역 대상 (브라우저에서 이것은 창) 이다.나는
greetFunc = world.greet
이라는 표현식을 명명하여 방법과 그 대상을 분리시켰다.잠시 후 분리하는 방법 greetFunc()
을 호출하면 전체 대상과 같다.객체를 분리하는 방법은 다음과 같습니다.
const myMethodFunc = myObject.myMethod;
setTimeout(myObject.myMethod, 1000);
myButton.addEventListener('click', myObject.myMethod)
<button onClick={myObject.myMethod}>My React Button</button>
방법을 잃는 상하문을 피하기 위해서는 사용법이 세계를 움직일 수 있도록 하세요.greet () 또는 수동으로 이 방법을 대상 greetFunc = world.greet.bind(this)
에 귀속시킵니다.4.2 간접 함수 호출
앞에서 말한 바와 같이 일반 함수 호출은 그것을 전역 대상으로 해석한다.일반 함수에 맞춤형 값을 만들 수 있는 방법이 있습니까?
다음 방법을 사용하여 간접 함수 호출을 시작합니다.
myFunc.call(thisArg, arg1, arg2, ..., argN);
myFunc.apply(thisArg, [arg1, arg2, ..., argN]);
함수 대상에서 사용할 수 있는 방법.myFunc.call(thisArg)
과 myFunc.apply(thisArg)
의 첫 번째 매개 변수는 간접적으로 호출된 상하문(그 값)이다.다시 말하면 함수의 값을 수동으로 표시할 수 있습니다.예를 들어
greet()
을 일반 함수와 who 속성을 가진 대상 이형으로 정의합니다.function greet() {
return `Hello, ${this.who}!`;
}
const aliens = {
who: 'Aliens'
};
greet.call(aliens);
greet.apply(aliens);
greet.call(aliens)
과 greet.apply(aliens)
은 모두 간접적인 방법으로 호출된다.greet()
함수 중의 이 값은 하나의 대상과 같다.간접 호출은 대상에서 시뮬레이션 방법을 호출할 수 있도록 합니다!
4.3 바인딩 함수 호출
마지막으로 여기는 세 번째 방법으로 함수를 대상으로 하는 방법으로 호출할 수 있다.구체적으로 말하면
function
을 특정한 상하문에 귀속시킬 수 있다.특수 방법을 사용하여 바인딩 함수를 생성할 수 있습니다.
const myBoundFunc = myFunc.bind(thisArg, arg1, arg2, ..., argN);
myFunc.bind(thisArg)
의 첫 번째 매개 변수는 함수가 연결된 상하문이다.예를 들어,
greet()
을 다시 사용하고 aliens
컨텍스트에 바인딩합니다.function greet() {
return `Hello, ${this.who}!`;
}
const aliens = {
who: 'Aliens'
};
const greetAliens = greet.bind(aliens);
greetAliens();
Calling greet.bind(aliens)
에서 새 함수를 만듭니다. 이 함수는 대상에 귀속됩니다.잠시 후 귀속함수
greetAliens()
을 호출하면 이 함수 중의 외계인과 같다.마찬가지로 귀속 함수를 사용하면 시뮬레이션 방법으로 호출할 수 있다.
5. 화살표가 방법의 역할을 한다
다음과 같은 이유로 화살표 함수를 사용하는 것을 권장하지 않습니다.
greet()
메서드를 화살표 함수로 정의합니다.const world = {
who: 'World',
greet: () => {
return `Hello, ${this.who}!`;
}
};
world.greet();
불행하게도 world.greet()
은 예상한 'Hello, undefined!'
이 아닌 'Hello, World!'
으로 돌아왔다.문제는 화살표 함수 내부의 값이 외부 범위의 값과 같다는 것이다.자꾸 이래요.하지만 너희가 원하는 것은 세계 물체와 같다.
이것이 바로 arrow 함수의 내부가 브라우저의 전역 대상인 창과 같은 이유입니다.
'Hello, ${this.who}!'
의 계산 결과는 헬로, ${windows.who}!
, 마지막으로 'Hello, undefined!'
이었다.나는 화살표 기능을 좋아한다.하지만 효과적인 방법은 아니다.
6. 요약
이 방법은 대상에 속하는 함수다.방법의 상하문(
this
값)은 이 방법이 속한 대상과 같다.클래스에서 방법을 정의할 수도 있다.
this
류의 방법은 내부가 실례와 같다.JavaScript의 특징은 한 가지 방법만으로는 충분하지 않다는 것입니다.사용 방법을 사용해야 합니다.일반적으로 메서드는 다음 구문을 사용합니다.
myObject.myMethod('Arg 1', 'Arg 2');
흥미로운 것은 JavaScript에서 대상에 속하지 않는 일반 함수를 정의한 다음 이 함수를 Arbirr 대상의 방법으로 호출할 수 있다는 것이다.간접 함수를 사용하여 함수를 호출하거나 특정 컨텍스트에 바인딩할 수 있습니다.myRegularFunc.call(myObject, 'Arg 1', 'Arg 2');
myRegularFunc.apply(myObject, 'Arg 1', 'Arg 2');
const myBoundFunc = myRegularFunc.bind(myObject);
myBoundFunc('Arg 1', 'Arg 2');
간접 호출과 경계 시뮬레이션 방법 호출.놓치지 마세요.
1. TestDriven.io: Django and Pydantic
2. Python Pool: NumPy Cross Product in Python with Examples
Reference
이 문제에 관하여(Javascript 방법란?Javascript 메서드 설명서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/coodignd/what-are-javascript-method-a-guide-to-javascript-methods-2b7a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)