이 글은 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. 함수의 내부 속성은
이것을 포함합니다. 속성, 길이 및 프로토타입
length는 함수가 수신하기를 원하는 명명된 매개변수의 수를 나타냅니다.
function a(name){ //todo } function b(name,age){ //todo } function c(){ //todo } a.length //1 b.length //2 c.length //0
prototype 속성은 참조 유형에 매우 중요하며 구체적으로 설명할 것이므로 여기서는 자세히 다루지 않겠습니다. 각 함수에는 상속되지 않은 두 개의 메서드인 apply와 call이 포함되어 있습니다.
이 두 메서드의 목적은 특정 범위에서 함수를 호출하는 것입니다. 실제로 함수 본문에서 이것이 참조하는 값을 설정하는 것입니다.
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
위 내용은 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사
네이티브 JavaScript에서 할 일 목록 기능을 구현하는 방법JS에서 FileReader를 사용하여 사진을 업로드하기 전에 로컬 미리보기 기능을 구현하는 방법
위 내용은 jQuery에서 isPlainObject()를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!