週末の研究:関数


関数は次のとおりです。


関数の形式は次のとおりです.
function 함수이름(매개변수1, 매개변수2){
   	실행할 코드
   	return 결과값;
}
関数は定義によって実行されるだけでなく、実行するには呼び出される必要があります.
定義はこうです=>
1. 함수 선언문으로 정의
function foo(x){ return x*x };

2. 함수 리터럴로 정의
var foo = function(x){return x*x};

3. 생성자로 정의
var foo = new Function("x","return x*x");

4. 화살표 함수 표현식으로 정의
var foo = x => x*x
呼び出しはこうします=>
1. 함수 호출
var f = foo라는 함수이름(3);
2. 메서드 호출 
객체이름();
obj.n();
예시)-------------------------------
var foo ={
  x:0,
  y:2,
  z: function(){
    return this.x + " " + this.y;
  }
}
foo.z();// '0 2'
------------------------------------
3.생성자 호출
> var obj = new Object();
関数の実行プロセスはこうです=>
1. 호출한 코드에있는 인수가 함수 정의문의 인자에 대입
2. 함수정의문의 중괄호 안에 작성된 프로그램이 순차적으로 실행
3. return문이 실행되면 호출한 코드로 돌아감. return문의 값은 함수의 반환값이 됨
4. return문이 실행되지 않은 상태로 마지막 문장이 실행되면 호출한 코드로 돌아간 뒤 
   undefined가 함수의 반환값이 됨. 
関数に複数の引数がある場合、引数の順序が混同されやすく、関数を変更する必要があるため、オブジェクトのpropertyに引数を含めてオブジェクトに渡すのが簡単になります.
↓fooオブジェクトには、setNum関数パラメータの伝達因子として使用される複数のパラメータが含まれています.
function setNum(params){
  console.log(params); //{ x: 1, y: 0, vx: 10, vy: 15 }
  return foo.vx * 2
}
var foo={
  x:1,
  y:0,
  vx:10,
  vy:15,
}

console.log(setNum(foo)); //20

上の図を見ると構造関数が分かりやすいです.
関数では、パラメータの使用方法は変数と同じで、関数が結果値を返す場合はreturn構文を使用します.return構文を使用すると、関数は実行を停止し、後の結果値を返します.結果値を返さずに関数の実行を終了する場合は、結果値を省略できます.
パラメータはparameterです.関数を呼び出すときに渡されるパラメータをパラメータと呼びます.
パラメータが関数宣言時に作成された変数の場合、伝達パラメータは関数呼び出し時に伝達される値です.
パラメータの個数とパラメータの個数が異なる場合でも、JavaScriptではエラーは発生しません.
これは、パラメータオブジェクトが関数を呼び出すときに関数内部に渡されるためです.
Argumentsオブジェクトとは、関数を呼び出すときに渡されるパラメータが配列形式で格納されるオブジェクトです.
argumentsオブジェクトを使用して、関数内のすべてのパラメータを参照し、呼び出し時に提供される各パラメータのエントリを持つことができます.arguments[1]に近づくことができます.
function func1(a, b, c) {
  console.log(arguments[0]);
  // expected output: 1

  console.log(arguments[1]);
  // expected output: 2

  console.log(arguments[2]);
  // expected output: 3
}

func1(1, 2, 3);


上記の例では、パラメータを呼び出すときに伝達パラメータ(arguments)が果たす役割について説明します.

下のアリーprototype.slice.call(arguments)は、argumentsオブジェクトを配列に変換するために、配列のプロトタイプで定義されたsliceメソッドを呼び出し、argumentsオブジェクトの要素をコピーする新しい配列を作成します.

次の例はDream Code Ellyのレッスンからの例です.
es 6には、最初の写真と同じ基本パラメータ処理が新たに追加されたため、=演算子を用いて割り当てたいパラメータ値をカッコに記入する例.


次のrestparameterはもっと理解が必要で、後で補充して使います.