javascript call()とappy()
2824 ワード
ECMAScriptはFunctionのプロトタイプに二つの方法を定義しました.一つはコール()とappy()です.この2つの方法を使用すると、他のオブジェクト方法と同様に関数を呼び出すことができます.オブジェクトをデータのようなパラメータとして関数に渡し、パラメータを関数に呼び出します.
彼と彼の違いは、コールの最初のパラメータはオブジェクト(または関数)でなければならず、残りのパラメータは任意であることです.applyは通常二つのパラメータしかなく、一つ目は対象または関数でなければなりません.二つ目は下付きのセットです.
たとえば:
&噫13;
.csharpcode.csharpcode pre&唴13;
{啝13
font-size:small;&唵13;
カラー:black;
font-family:consosolas、「Courier New」、courier、monoospace;
background-カラー:&菗菗13;
//white-space:pre;*/&噫13;
}&{13;
.csharp code pre{margin:0 em;}&萶13;
.csharrpcode.rem{color=0000 ff}&菷13;
.csharpcode.kwrd{color=blue 0000 ff}&菗13;
.csharpcode.str{color=blue 006080}&菷13;
.csharpcode.op{color=0000 c 0}&菗13;
.csharpcode.preproc{color=0000 cc 6633;}&菷13;
.csharpcode.asp{background-カラー}と菗13;
.csharrpcode.{啱800000;}&唵13;
.csharpcode.atr{color=0000 ff}&菗13;
.csharpcode.alt&啝13;
{啝13
background-色:菗f 4 f 4;&萶13;
width:100%&菗13;
margin:0 em;
}&{13;
.csharpcode.lnum{color=0000 ff}
彼と彼の違いは、コールの最初のパラメータはオブジェクト(または関数)でなければならず、残りのパラメータは任意であることです.applyは通常二つのパラメータしかなく、一つ目は対象または関数でなければなりません.二つ目は下付きのセットです.
たとえば:
function dow(s){
document.write("<h1>"+s+"</h1>");
}
function Point(x,y){
this.x=x;
this.y=y;
this.toString=function(){
return "("+[x,y]+")";
}
}
function Vectory(x,y){
this.x=x;
this.y=y;
this.toString=function(){
return "("+[x,y]+")";
}
}
function add(x,y){
return new this.constructor(this.x+x,this.y+y);
}
var p=new Point(2,4);//
var v=new Vectory(3,5);
//call() call call , call , call
dow(p);
dow(add.call(p,3,5));// p add
dow(add.apply(p,[2,6]));// ,
&噫13;&噫13;
.csharpcode.csharpcode pre&唴13;
{啝13
font-size:small;&唵13;
カラー:black;
font-family:consosolas、「Courier New」、courier、monoospace;
background-カラー:&菗菗13;
//white-space:pre;*/&噫13;
}&{13;
.csharp code pre{margin:0 em;}&萶13;
.csharrpcode.rem{color=0000 ff}&菷13;
.csharpcode.kwrd{color=blue 0000 ff}&菗13;
.csharpcode.str{color=blue 006080}&菷13;
.csharpcode.op{color=0000 c 0}&菗13;
.csharpcode.preproc{color=0000 cc 6633;}&菷13;
.csharpcode.asp{background-カラー}と菗13;
.csharrpcode.{啱800000;}&唵13;
.csharpcode.atr{color=0000 ff}&菗13;
.csharpcode.alt&啝13;
{啝13
background-色:菗f 4 f 4;&萶13;
width:100%&菗13;
margin:0 em;
}&{13;
.csharpcode.lnum{color=0000 ff}