>웹 프론트엔드 >JS 튜토리얼 >js 함수 관련 내용에 대한 자세한 설명

js 함수 관련 내용에 대한 자세한 설명

亚连
亚连원래의
2018-06-04 11:24:131347검색

이 글은 JS의 기능과 관련된 중요한 지식 포인트를 간략하게 분석한 것입니다. 이에 관심이 있는 친구들은 참고할 수 있습니다.

js에서 참조 유형은 5가지 참조 유형, 즉 Object, data, Array를 포함하는 데이터 구조라는 것을 알아야 합니다. 코드 gExp, Function을 입력하세요. 오늘은 Function의 데이터 구조에 대해 알아보겠습니다.

js에서 함수는 실제로 객체이며 각 함수는 Function 유형의 인스턴스입니다. 다른 참조 유형과 마찬가지로 속성과 메서드가 있습니다.

1. 함수를 정의하는 방법에는 여러 가지가 있습니다

1) 함수 선언 구문 정의

  function sum(num1,num2){
  return num1+num2;
 }

2) 함수 표현식

함수 표현식 뒤에 세미콜론이 있다는 점에 유의하세요.

var sum=function(num1,num2){
   return num1+num2;
}

함수 생성자를 사용하세요

사용 생성자는 원하는 수의 매개변수를 받을 수 있지만 마지막 매개변수는 항상 함수 본문으로 간주되고 이전 매개변수는 매개변수를 열거합니다.

var sum=new Function("num1","num2","return num1+num2")

물론 세 번째 방법은 친숙하지 않으며 권장되지 않습니다.

함수 이름은 단지 함수에 대한 포인터이므로 함수 이름은 객체 포인터를 포함하는 다른 변수와 다르지 않습니다. 즉, 함수에는 여러 이름이 있을 수 있습니다.
여기서 함수 선언과 함수 표현식의 차이점은 무엇인가요?

파서가 실행 환경에 데이터를 로드할 때 함수 선언과 함수 표현식을 다르게 처리합니다. 파서는 먼저 함수 선언을 읽고 코드보다 먼저 함수 선언 코드를 호출 가능하게 만듭니다. 이것이 우리가 일반적으로 함수 선언 호이스팅이라고 부르는 것입니다. 함수 표현식은 서로 다릅니다. 함수 구문 분석기가 실제로 실행되기 전에 자신이 위치한 코드 블록을 실행할 때까지 기다려야 합니다. 다음 2가지 예를 비교해보세요

console.log(sum(10,10));

function sum(n1,n2){
  return n1+n2;
}

以上代码会正常执行

再看!

console.log(sum(10,10));

var sum=function(n1,n2){
  return n1+n2;
}

以上执行器就会报错!

2. 함수는 오버로드되지 않습니다

동일한 이름을 가진 두 함수가 선언되면 후자의 함수가 이전 함수를 덮어쓰게 됩니다.

function sun(a){
 return a+100;
}
function sun(a){
 return a+200;
}

var result=sum(2)//202

3. 함수의 내부 속성은

이것을 포함하며, 인수는

자세한 내용은 다시 설명하지 않습니다

4. 함수의 속성과 메소드

함수에는 length라는 두 가지 속성이 있습니다. 그리고 프로토타입

length. 함수가 수신할 것으로 예상되는 명명된 매개변수의 수입니다.

function a(name){
 //todo
}
function b(name,age){
 //todo
}
function c(){
 //todo
}

a.length //1
b.length //2
c.length //0

prototype 속성은 참조 유형에 매우 중요하며 구체적으로 설명할 것이므로 여기서는 자세히 다루지 않겠습니다.

각 함수에는 상속되지 않은 2개의 메서드인 apply와 call이 포함되어 있습니다.

이 두 메서드의 목적은 특정 범위에서 함수를 호출하는 것입니다. 실제로 함수 본문에서 this가 참조하는 값을 설정하는 것입니다.

우선. apply() 메서드는 두 개의 매개변수를 받습니다. 하나는 함수가 실행되는 범위이고 다른 하나는 매개변수 배열입니다. 두 번째 매개변수는 배열 또는 인수의 인스턴스일 수 있습니다.

function sum(num1,num2){
  return num1+num2;
}

function test1(a,b){
  return sum.apply(this,arguments);
}

function test2(c,d){
  return sum.apply(this.[c,d]);
}

console.log(test1(1,1)) //2

console.log(test2(1,1)) //2

두 매개변수 사이에는 큰 차이가 없습니다. 호출 메소드와 적용 메소드. 차이점은 호출 메소드의 두 번째 매개변수가 하나씩 나열되어야 한다는 점입니다.

범위 확장을 위해 호출 및 적용을 사용하는 가장 큰 장점은 개체가 어떤 메서드와도 결합되지 않는다는 것입니다.

위 내용은 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

Vue에서 재사용 가능한 구성 요소를 캡슐화하는 방법

Vue에서 슬롯을 사용하여 슬롯 배포 콘텐츠를 구현하는 방법

vue.js에서 선택 값을 얻는 방법(자세한 튜토리얼)

위 내용은 js 함수 관련 내용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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