17 JavaScript 中的call和apply
對于咱們逆向工程師而言. 并不需要深入的理解call和apply的本質(zhì)作用. 只需要知道這玩意執(zhí)行起來的邏輯順序是什么即可
在運行時. 正常的js調(diào)用:
function People(name, age){
this.name = name;
this.age = age;
this.chi = function(){
console.log(this.name, "在吃東西")
}
}
p1 = new People("zzc", 18);
p2 = new People("wyy", 20);
p1.chi(); // zzc 在吃東西
p2.chi(); // wyy在吃東西
接下來, 我們可以使用call和apply也完成同樣的函數(shù)調(diào)用文章來源:http://www.zghlxwxcb.cn/news/detail-677369.html
function People(name, age){
this.name = name;
this.age = age;
this.chi = function(what_1, what_2){
console.log(this.name, "在吃", what_1, what_2);
}
}
p1 = new People("zzc", 18);
p2 = new People("wyy", 20);
p1.chi("饅頭", "大餅"); // zzc在吃 饅頭 大餅
p2.chi("大米飯", "面條"); // wyy在吃 大米飯 苗條
function eat(what_1, what_2){
console.log(this.name, "在吃", what_1, what_2);
}
// call的語法是: 函數(shù).call(對象, 參數(shù)1, 參數(shù)2, 參數(shù)3....)
// 執(zhí)行邏輯是: 執(zhí)行函數(shù). 并把對象傳遞給函數(shù)中的this. 其他參數(shù)照常傳遞給函數(shù)
eat.call(p1, "查克拉", "元宇宙"); // zzc 在吃 查克拉 元宇宙
apply和他幾乎一模一樣. 區(qū)別是: apply傳遞參數(shù)要求是一個數(shù)組。文章來源地址http://www.zghlxwxcb.cn/news/detail-677369.html
eat.apply(p1, ["苞米茬子", "大餅子"]); // zzc 在吃 苞米茬子 大餅子
到了這里,關(guān)于17 JavaScript 中的call和apply的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!