js call()方法
1 //用add方法替换sub方法 2 function add(a,b){ 3 console.log(a+b) 4 } 5 function sub(a,b){ 6 console.log(a-b) 7 } 8 add.call(sub,3,1); 9 10 //c1的方法放到c2上执行 11 function Class1(){ 12 this.cName = 'class1'; 13 this.showClass = function(){ 14 console.log(this.cName) 15 } 16 } 17 function Class2(){ 18 this.cName = 'class2'; 19 } 20 var c1 = new Class1(); 21 var c2 = new Class2(); 22 c1.showClass.call(c2); 23 24 //实现继承 用Class3对象代替Class4的this对象,Class4即拥有所有Class3的属性和方法 25 function Class3(){ 26 this.showTxt = function(txt){ 27 console.log(txt) 28 } 29 } 30 function Class4(){ 31 Class3.call(this) 32 } 33 var c4 = new Class4(); 34 c4.showTxt('hello'); 35 36 //多重继承 37 function Add() { 38 this.showAdd = function(a, b) { 39 console.log(a+b) 40 } 41 } 42 function Sub() { 43 this.showSub = function(a, b) { 44 console.log(a-b) 45 } 46 } 47 function Count(){ 48 Add.call(this); 49 Sub.call(this); 50 } 51 var c = new Count(); 52 c.showAdd(1,3); 53 c.showSub(1,3);