JavaScript 고급 프로그래밍 5.5-6

2462 단어

1.function은 대상, 창설도 대상 인용


세 가지 작성 방법 중 마지막으로 M1을 추천하지 않습니다.
function func(){
  alert(" ");
}

M2:
var func=function(){
  alert(" ");
 }

M3:
var func=function(" 1"," 2"," n","alert(" , ")");

2. 코드가 실행되기 전에 해석기는 코드가 향상되는 과정을 거쳐 함수 성명을 생성하여 함수가 정상적으로 사용될 수 있도록 한 다음에 성명 함수를 맨 위에 올리고 실행한다


함수 호출은 함수가 생성되기 전에 오류가 발생하지 않습니다.
var Vsum=sum(10);
alert(Vsum); 
function sum(maxV){
  "use strict"
  for(var i=0;i

또 다른 상황은 실수를 할 수 있다.
var Vsum=sum(10);
alert(Vsum); 
var sum=function(maxV){
  "use strict"
  for(var i=0;i

오류가 발생한 원인은 함수 생성이 맨 위에 있기 때문이지만, 함수의 성명은 그렇지 않기 때문이다

3. 함수 내부에argument와this 두 개의 특수 대상을 가지고 있다


argument는 함수를 가진 매개 변수를 저장하는 매개 변수입니다. argument는 속성callee를 가지고 있으며, argument 대상을 가진 함수를 가리키는 바늘입니다.
이 방법은 결합을 풀기 위해 고전적인 예에 귀속되어 계승을 실현할 수 있다
  alert(factorial(10));
  function factorial(Vmax){   //Vmax>0
      if(Vmax<=1)return 1;
      else{
        return Vmax*factorial(Vmax-1);  
  }
 }

arguments 절의 결합을 이용하다
  alert(factorial(10));
  funciton factorial(Vmax){
    if(Vmax<=1)return 1;
    else{
      return Vmax*arguments.callee(Vmax-1);
      }
  }

하지만 엄격한 모드에서 사용하면 오류가 발생합니다.

4.this 대상이 자바와 c#와 유사한this는 현재 역할 영역을 가리키며 다른 역할 영역이 없을 때 윈도우 예를 가리킨다.


5. ECMAScript5는 함수 대상의 또 다른 속성caller를 정의합니다. 현재 함수를 인용하는 함수의 인용을 저장하고 있으며, 윈도우라면null 실례입니다.


이외에도 ECMAScript는 모든 함수 대상에 대해 length와prototype 속성 방법을 정의했습니다.length는 모든 함수 대상이 몇 개의 매개 변수를 받아들일 수 있기를 희망한다는 것을 나타낸다. 프로토타입은 함수에 있는 모든 실례를 저장하고 있다. 실제로 toString과 ValueOf는 프로토타입 이름으로 저장되고 각자의 실례 대상을 통해 호출될 뿐이다
모든 함수는 계승되지 않은 방법을 포함하고 있습니다 apply와call 방법
apply와call 방법은 두 개의 매개 변수를 받아들입니다. 첫 번째 매개 변수는 모두 작용역this 두 번째 매개 변수 apply는 수조 매개 변수나arguments(현재 함수를 저장하는 매개 변수)call을 수신할 수 있습니다. 순서대로 배열된 매개 변수만 수신할 수 있습니다.
주의해야 할 것은 apply와call은 전달 함수가 아닌 확충 함수의 작용역으로 가장 많이 사용된다는 것이다.
window.color="red";// 
var o_bule={
    color:"bule"
}
 function toStringColor(){
         console.log(this.color);
}
toStringColor.call(this);//red
toStringColor.call(o_bule);//bule
toStringColor().call(window); //red

좋은 웹페이지 즐겨찾기