//在函数中直接调用
function get(content) {
console.log(content);
}
get("Hi");
//上面这个是下面这个的简写语法糖
get.call(window, "Hi");
//函数作为对象的方法 被调用
var person = {
name: "Joshua",
run: function (time) {
console.log(`${this.name},run time:${time}`);
},
};
person.run(30);
//上面这个是下面这个的简写语法糖
person.run.call(person, 30);
// 面试题
var name = 222;
var a = {
name: 111,
say: function () {
console.log(this.name);
},
};
var fun = a.say;
fun(); //fun.call(window) //222
a.say(); //a.say.call(a)//111
var b = {
name: 333,
say: function (fn) {
fn();
},
};
b.say(a.say); //b.say.call(a.say)//222
b.say = a.say; //function () {console.log(this.name)}
b.say(); //b.say.call(b)//333