[转] JS中的call()方法和apply()方法用法总结
//例1 <script> window.color = \'red\'; document.color = \'yellow\'; var s1 = {color: \'blue\' }; function changeColor(){ console.log(this.color); } changeColor.call(); //red (默认传递参数) changeColor.call(window); //red changeColor.call(document); //yellow changeColor.call(this); //red changeColor.call(s1); //blue </script> //例2 var Pet = { words : \'...\', speak : function (say) { console.log(say + \'\'+ this.words) } } Pet.speak(\'Speak\'); // 结果:Speak... var Dog = { words:\'Wang\' } //将this的指向改变成了Dog Pet.speak.call(Dog, \'Speak\'); //结果: SpeakWang
//例1 <script> window.number = \'one\'; document.number = \'two\'; var s1 = {number: \'three\' }; function changeColor(){ console.log(this.number); } changeColor.apply(); //one (默认传参) changeColor.apply(window); //one changeColor.apply(document); //two changeColor.apply(this); //one changeColor.apply(s1); //three </script> //例2 function Pet(words){ this.words = words; this.speak = function () { console.log( this.words) } } function Dog(words){ //Pet.call(this, words); //结果: Wang Pet.apply(this, arguments); //结果: Wang } var dog = new Dog(\'Wang\'); dog.speak();
https://blog.csdn.net/ganyingxie123456/article/details/70855586