>웹 프론트엔드 >JS 튜토리얼 >호출, 적용 및 바인딩 방법 — Javascript

호출, 적용 및 바인딩 방법 — Javascript

Susan Sarandon
Susan Sarandon원래의
2024-11-03 01:09:291010검색

Call, Apply & Bind Methods — Javascript

JS의 모든 기능은 이 키워드에 액세스할 수 있습니다.

1. 전화

함수 차용과 비슷합니다. 한 개체에서 함수를 빌리고 다시 선언하는 대신 다른 개체와 함께 사용할 수 있습니다.

let name = {
  firstnName: 'Manoj',
  secondName: 'Ravi',
  fullName: function (district, state) {
    return `${this.firstName} ${this.secondName} from ${district}, ${state}.`;
  }
};

let getFullDetails = function(district, state) {
  return `${this.firstName} ${this.secondName} from ${district}, ${state}.`;
};

name.fullName('Chennai', 'TN');  // Manoj Ravi from Chennai, TN.
getFullDetails.call(name, 'Chennai', 'TN');  // Manoj Ravi from Chennai, TN.

let name2 = {
  firstnName: 'Sanjay',
  secondName: 'Ravi',
};

name.fullName.call(name2, 'Coimbatore', 'TN');  // Sanjay Ravi from Coimbatore, TN.
getFullDetails.call(name2, 'Coimbatore', 'TN');  // Sanjay Ravi from Coimbatore, TN.

추가 매개변수는 쉼표로 구분된 형식으로 공유할 수 있습니다.

2. 신청

call과 유사하지만 유일한 차이점은 인수를 전달하는 방식입니다. 개별적으로(쉼표로 구분된 형식으로) 전달하는 대신 배열로 전달합니다.

let getFullDetails = function(district, state) {
  return `${this.firstName} ${this.secondName} from ${district}, ${state}.`;
};

let name = {
  firstnName: 'Manoj',
  secondName: 'Ravi'
};
getFullDetails.call(name, ['Chennai', 'TN']);  // Manoj Ravi from Chennai, TN.

let name2 = {
  firstnName: 'Sanjay',
  secondName: 'Ravi'
};
getFullDetails.call(name2, ['Coimbatore', 'TN']);  // Sanjay Ravi from Coimbatore, TN.

3. 바인딩

호출과 유사하게 이 메소드는 함수를 즉시 호출하지 않습니다. 대신, 함수의 참조를 바인딩하고 나중에 호출할 수 있는 새 함수를 반환합니다.

let getFullDetails = function(district, state) {
  return `${this.firstName} ${this.secondName} from ${district}, ${state}.`;
};

let name = {
  firstnName: 'Manoj',
  secondName: 'Ravi'
};


let printDetails = getFullDetails(name, 'Chennai', 'TN');
printDetails();  // Manoj Ravi from Chennai, TN.

읽어주셔서 감사합니다! 이 블로그가 유익하고 흥미로웠기를 바랍니다. 부정확한 내용을 발견하거나 의견이 있으면 언제든지 알려주시기 바랍니다.

위 내용은 호출, 적용 및 바인딩 방법 — Javascript의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.