Jsアプリとcallの継承が実現しました.
2858 ワード
Funtion.apply:
Function.apply(obj,args)方法は二つのパラメータを受信できます.
このオブジェクトは、Functionクラスのthisオブジェクトの代わりになります.
args:これは配列で、パラメータとしてFunctionに伝えられます.
Function.call:
Function.call(obj,[param 1],
このオブジェクトは、Functionクラスのthisオブジェクトの代わりになります.
params:これはパラメータリストです.
callとappyは同じです.パラメータリストが違うだけです.
Personクラス:
Studentクラスにはnameとageの属性はありませんが、applyとcallの継承により、StudentクラスにPersonクラスのメンバーシップを継承しました.
Appleに関するユーティリティ:
1、出力配列の最大要素:
2、配列のプッシュ方法:
arrs 1.push(arrs 2)を使用すると、出力は[5,1,3,3,5]であり、これは、arrs 2の配列全体を一つの要素としてarrs 1に追加するものであって、順次追加するものではない.
Function.apply(obj,args)方法は二つのパラメータを受信できます.
このオブジェクトは、Functionクラスのthisオブジェクトの代わりになります.
args:これは配列で、パラメータとしてFunctionに伝えられます.
Function.call:
Function.call(obj,[param 1],
このオブジェクトは、Functionクラスのthisオブジェクトの代わりになります.
params:これはパラメータリストです.
callとappyは同じです.パラメータリストが違うだけです.
Personクラス:
function Person(name,age) {
this.name = name;
this.age = age;
}
Studentクラス:function Student(name,age,height) {
Person.apply(this,arguments);
//Person.call(this,name,age,height); //call ;
this.height = height;
}
実用化:var student = new Student("chams",22,"173");
テスト:console.log("name:" + student.name + " age:" + student.age + " height:" + student.height);
Studentクラスにはnameとageの属性はありませんが、applyとcallの継承により、StudentクラスにPersonクラスのメンバーシップを継承しました.
Appleに関するユーティリティ:
1、出力配列の最大要素:
var arrs = [1,70,9,180,19,25,100,2,20];
function maxArrs(arrs){
return Math.max.apply('',arrs);
}
//console.log(Math.max(arrs)); // Math.max( ), Math.max(1,70,9,180,19,25,100,2,20); NaN;
console.log(maxArrs(arrs));
2、配列のプッシュ方法:
var arrs1=[5,1,3],arrs2=[3,1,5];
Array.prototype.push.apply(arrs1,arrs2); //[5, 1, 3, 3, 1, 5]
//arrs1.push(arrs2); //[5, 1, 3, [3, 1, 5]]
console.log(arrs1);
arrs 1.push(arrs 2)を使用すると、出力は[5,1,3,3,5]であり、これは、arrs 2の配列全体を一つの要素としてarrs 1に追加するものであって、順次追加するものではない.