理解JavaScript的对象方法this

帮助理解JavaScript的对象方法this

方法只是保存函数值的属性。

简单对象方法

let cat = {};
cat.speak = function(line) {
    console.log("小猫说: "+ line );
};
cat.speak("喵喵。")

输出:

小猫说: 喵喵。

对象方法 & this

当一个函数作为方法被调用时,对象会将函数作为属性并立即调用,就像在object.method()中一样,其主体中的特殊变量this将指向被调用的对象。


function speak(line) {
	console.log(this.type + "小猫说:" + line)
};
let whiteCat = {type: "白色", speak: speak}
whiteCat.speak("噢,我真可爱!")

输出:

白色小猫说:噢,我真可爱!

apply & call

apply 和 call可以用于object.method()

apply和call方法都有一个可用于模拟方法调用的第一个参数

实际上第一个参数是用来指定 this

function speak(line) {
	console.log(`${this.type}的小猫说:${line}`);
};
let whiteCat = {type: "白色", speak: speak};

speak.apply(whiteCat, ["你这个小坏蛋!"]);
speak.call({type: "黑色"}, "嘿嘿,我不坏,你不爱!");
白色的小猫说:你这个小坏蛋!
黑色的小猫说:嘿嘿,我不坏,你不爱!

 

  • 发表于 2020-09-19 16:46
  • 阅读 ( 22 )
  • 分类:前端开发

0 条评论

请先 登录 后评论
库库巴
库库巴

56 篇文章

作家榜 »

  1. 库库巴 56 文章
  2. 素质教育的漏网之鱼 39 文章
  3. 特效搬运工 31 文章
  4. 噢嚯 3 文章
  5. admin 1 文章
  6. 手机用户7182 0 文章
  7. Axizs 0 文章
  8. 哄哄 0 文章