如圖,js函數(shù)本身就具有一些方法和屬性

image.png
下面介紹一些常用方法。
1.bind方法
bind方法可以改變函數(shù)在被執(zhí)行時(shí)內(nèi)部的this指向,并返回一個(gè)函數(shù)
舉例如下:
1.假入不用箭頭函數(shù),我們可以用如下方法改變setTimeInterval中this的指向
setTimeInterval(function(){}.bind(this),1000}
2.觸發(fā)事件
btn.onclick=function(){
console.log(this)
}.bind(obj)
2.apply方法
改變函數(shù)執(zhí)行的this,并接收參數(shù)數(shù)組,執(zhí)行函數(shù)
舉例如下:
已知Math.max方法可以獲取一組數(shù)中的最大值
如Math.max(2,5,7),但改方法只能接收單個(gè)字符,那么如何獲取數(shù)組的最大值呢?
可應(yīng)用apply方法
var arr=[2,5,6,7]
Math.max.apply(null,arr)
2.call方法
與apply方法不同的是,call方法接收的是參數(shù)列表
舉例,在函數(shù)繼承時(shí)
例如學(xué)生要繼承人的屬性
function Person(name,age){
this.name=name;
this.age=age;
}
function Student(name,age,score){
Person.call(this,name,age)//此處用 call 方法來改變this為Student的this
this.score=score;
}
var s1=new Student('xiaoyu',22,99)