너의 방법을 잠가라🔗🔗🔗

17310 단어 webdevjavascript
링크 방법은 아마도 당신이 어느 때 한 일일 것이다. 아마도 아직 의식하지 못했을 것이다.만약 네가 없다면, 너는 틀림없이 다른 사람의 코드에서 그것을 볼 것이다.이것이 바로 링크 방법의 모습이다.
let names = ['Tony', 'Adesh', 'Robert', 'Su Cheng'];
//want to run both filter and map on this array.
names = names.filter(someFunc).map(otherFunc);
우리는 이 확장판을 보고, 아래에서 모든 세부 사항을 설명할 것이다.

체인 소개


프로그래밍의 과정은 간단한 순서 문제 해결이다.우리는 문제를 몇 개의 작은 논리적 절차로 분해하여 이 절차를 집행하는 가장 좋은 순서를 결정할 것이다.
Dell을 연결하는 방법pure functions과 같은 모범 사례를 활용할 수 있습니다.우리는 순수 함수로 우리의 작은 논리적 절차를 만들 수 있다.

A pure function is one that will always provide the same output for the same input and it can't have any side effects - like changing the value of something outside the function that had nothing to do with the input or output values.


이 문장은 논리에 맞는 순서가 있다.그것은 몇 부분으로 나뉜다.이 장절들은 몇 단락으로 나누어진다.이 단락들은 몇 문장으로 나누어진다.이 문장들은 몇 개의 단어로 나뉘어져 있다.모든 단계의 순서가 매우 중요하다.어떤 단계에서든 절차를 바꾸면 강좌가 실패합니다.니 프로처럼.
링크를 연결하는 방법은 당신이 취하고 있는 절차를 아주 읽을 수 있는 방법으로 하드코딩할 수 있는 방법입니다.
let result = myobject.stepOne().stepTwo().stepThree();

체인 자물쇠는 어떻게 작동합니까


그것들을 연결하는 능력은 확실히 약간의 제한이 있다.첫 번째 단계의 결과는 다음 단계를 시작할 수 있는 대상이나 데이터 형식이어야 합니다.
JavaScript는 이러한 단계를 왼쪽에서 오른쪽으로 자동으로 읽고 수행합니다.
마지막 단계를 마쳤을 때, 결과는 = 왼쪽에 있는 대기 변수 (있을 경우) 로 되돌아와 분배됩니다.
다음 방법으로 유효한 대상 유형을 되돌려주면 링크를 계속할 수 있습니다.
다음은 두 가지 내장 방법인 Number.prototype.toFixed()Number.parseFloat()을 포함하는 간단한 예입니다.
let pie = '3.1415 is the approximate value of PI';
let num = parseFloat(pie).toFixed(2); 
num의 값은 "3.14"입니다.전역 방법 parseFloat 은 문자열을 받아들이고 맨 왼쪽의 숫자를 추출하여 10진법을 사용할 수 있도록 합니다.그것은 하나 Number 로 되돌아갈 것이다.toFixed 방법은 Number에서 운행할 수 있다.그것은 파라미터를 사용하고 NumberStringNumber 등가물로 변환하여 소수 자릿수가 정확하다.
이 긴 방법은 자신의 줄에 첫 번째 방법을 추가하고 중간 단계의 값을 저장하는 다른 변수를 만드는 것입니다.
let pie = '3.1415 is the approximate value of PI';
let middle = parseFloat(pie);
let num = middle.toFixed(2); 
// the value of num will be "3.14"
우리의 방법을 연결하면 중간의 절차를 생략할 수 있다.추가 변수를 만들 필요가 없습니다.추가 코드 줄이 없습니다.우리는 단지 한 줄에서 절차를 읽을 수 있을 뿐이다.💯

제 방법으로 해도 돼요?


자신의 Object (s) 를 구축하고 있다면, 같은 규칙을 따르기만 하면 다음 방법에서 사용할 정확한 데이터 형식을 되돌려줍니다.
다음은 한 사람의 예이다🧔 반대, 반대하다(이 대상도 class 문법으로 구축할 수 있다).
const Person = function(_name){
  this.name = _name;
}
Person.prototype.speak = function(_phrase){
  console.log(`${this.name} says, "${_phrase}"`);
}
Person.prototype.drink = function(_beverage){
  console.log(`${this.name} is enjoying a ${_beverage}`);
}
Person 대상을 사용하면 우리는 현재 한 사람을 실례화하고 이 방법을 호출할 수 있다.
let rashad = new Person('Rashad');
rashad.speak('Do your homework');
rashad.drink('coffee');
모든 것이 정상이다.그러나 우리는 연쇄speak나 연쇄drink를 할 수 없다.두 함수 모두 기본값undefined을 반환합니다.
그러나, 만약 우리가return 문장을 추가하고 실례화된 Person 대상을 되돌려준다면.
Person.prototype.speak = function(_phrase){
  console.log(`${this.name} says, "${_phrase}"`);
  return this;
}
Person.prototype.drink = function(_beverage){
  console.log(`${this.name} is enjoying a ${_beverage}`);
  return this;
}

We don't want to add a return to the constructor function because it has to return the newly created instance.


이제 우리는 우리의 방법을 연결할 수 있다. 그것이 작용할 것이다🙌.
let vladimir = new Person('Vladimir');
vladimir.speak('I am thirsty').drink('beer');
이렇게 너는 거의 이미 준비가 다 되었다💪.

블렌드에 기능 추가


우리Person에는 몇 가지 간단한 방법이 있다🧔 대상이지만, 우리는 여전히 매우 간단한 코드를 사용한다.
만약 우리의 방법이 내부에서 다른 함수를 호출한다면?만약 그들이 다른 함수를 제공하는 매개 변수로 받아들인다면?우리는 어떻게 링크와 방법의 순결을 유지합니까?eat 대상에 Person 방법을 추가합니다.우리는 음식의 이름을 포함하는 문자열을 이 방법에 전달할 수 있다.그러나 하나의 함수를 전달함으로써 다른 출처에서 우리를 위해 음식을 선택할 수 있다. 이것은 더욱 현실적이고 현실적인 방법이다.
...아니면 왜 둘을 겸유할 수 없습니까?

우선, 우리는 새로운 eat 방법을 Person에 추가할 것이다.🧔 반대, 반대하다
Person.prototype.eat = function(source){
  let food = '';
  switch(typeof source){
    case 'string':
      food = source;
      break;
    case 'function':
      food = source();
      break;
  }
  console.log(`${this.name} is eating ${food}`);
  return this;
}
현재 우리의 방법은 aFunction를 받아들여 음식을 얻을 수도 있고, aString와 음식 이름을 받아들일 수도 있다.
그것은 다른 호출 방법이 있기 때문에 링크될 수도 있다.
다음은 사용할 수 있는 음식 기능의 예다.
const food = function(){
  let types = ['a slice of pizza', 'two tacos', 'some sushi', 'a burrito'];
  return types[Math.floor(Math.random() * types.length)];
}
현재, 우리의 새로운 방법은 체인 방법 코드의 일부분이다.
let sarah = new Person('Sarah');
sarah.speak('Hello').drink('tea').eat(food).speak('That was great!');
우리는 이 코드를 실행하여 다음과 같은 결과를 얻었다.
Sarah says, Hello
Sarah is enjoying a tea
Sarah is eating two tacos
Sarah says, That was great!
구부러지기 시작하다💪!

상용 그룹 방법 예시


원시 예시로 돌아가서 수조 방법인 Objectfilter을 사용하자.
let names = ['Tony', 'Adesh', 'Robert', 'Su Cheng'];
names = names.filter(someFunc).map(otherFunc);
map 방법은 함수를 매개 변수로 하고 수조의 모든 항목에 이 함수를 한 번 운행한다.Array.prototype.filter 방법의 함수는 항목별로 되돌아와야 한다filter 또는true.false는 예약된 품목을 나타냅니다.true는 이 물건을 처분하는 것을 가리킨다.항목마다 함수를 한 번 호출한 후 false 방법은 함수를 기반으로 호출된 filtertrue 응답으로 구축된 새로운 그룹을 되돌려줍니다.
이 새 false 는 호출 Array 방법에 사용될 것이다.map 방법은 함수를 매개 변수로 하고 수조의 모든 항목에 이 함수를 한 번 운행한다.Array.prototype.map 방법의 함수는 원하는 내용을 되돌려줍니다.map 방법은 모든 반환 값을 포함하는 새로운 map를 구축합니다.새로운 Array는 시종 호출Array 방법의 Array와 같은 항목을 가지고 있을 것이다.map 방법으로 되돌아오는 새 Array. 링크가 없기 때문에 변수map에 분배됩니다.
이제 너는 어떻게 너를 연결하는지, 그리고 왜 네가 이렇게 하려고 하는지 알게 되었다.
정말 기쁘다!🏆🥇💯🙌
그룹, 함수, 자바스크립트, 또는 거의 모든 웹 개발 주제에 대한 정보를 알고 싶으면, 수백 개의 동영상 강좌를 보십시오.

좋은 웹페이지 즐겨찾기