js에서 참조 유형은 Object, data, Array, re의 5가지 참조 유형을 포함하는 데이터 구조입니다. 코드 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. 함수에는 2개의 속성이 있습니다. 길이와 프로토타입
function a(name){ //todo } function b(name,age){ //todo } function c(){ //todo } a.length //1 b.length //2 c.length //0
각 함수에는 상속되지 않은 두 가지 메서드인 apply와 call이 포함되어 있습니다.
우선. apply() 메서드는 2개의 매개변수를 받습니다. 하나는 함수가 실행되는 범위이고 다른 하나는 매개변수 배열입니다. 두 번째 매개변수는 배열 또는 인수의 인스턴스일 수 있습니다.
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
호출 및 적용을 사용하여 범위를 확장하는 가장 큰 장점은 객체가 어떤 메서드에도 결합되지 않는다는 것입니다
관련 권장 사항:
JS 함수 예제에 대한 자세한 설명JS 함수 디바운싱 및 조절에 대한 자세한 분석_기본 지식
위 내용은 js 기능 관련 지식 요약 및 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!