💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] * Javascript的函数也是对象,它有三种方法可以改变函数内部this关键字的指向。 ## 1.bind ``` var wang = { name:"娟娟娟" } var apple = function(){ console.log(this.name); }.bind(wang); apple(); ``` ## 2.call ``` 语法:call(thisObj,params) //第一个参数指向函数内部的this,之后的参数是需要被传入函数的参数 ``` ``` function sayName(label) { console.log(label + ":" + this.name); } var name = "window"; var cheng = { name: "cheng" }; var jiang = { name: "jiang" }; sayName.call(this,"window"); sayName.call(cheng,"cheng"); sayName.call(cheng,"cheng"); ``` > 功能 1.改变函数内部this关键字的指向 2.可以让对象拥有一个它没有的方法 ``` var cheng = { name:"cheng", say(){ console.log("喜欢吃面") } } var jiang ={}; cheng.say.call(jiang); ``` ## 3.apply() > 语法:apply(thisObj,[params]) ``` var cheng = { name:"cheng" } var jiang = { name:"jiang", sayName(a,b){ console.log(this.name); console.log(a+b); } } jiang.sayName.apply(cheng,[1,2]) ```