接续昨天的这个例子
function sayHello(){
console.log(`你好,我是${this.name},今年${this.age}岁`)
};
let p1 ={
name:'长庚',
age:18,
say:sayHello
};
let p2 ={
name:'还没下凡的女朋友',
age:18,
say:sayHello
};
p1.say();
p2.say();
我们执行p1.say()里面所执行的sayHello里面的this.name为什麽是拿p1.name呢?
this实际参考的对象跟是否附属在某个物件里面完全没关系,而是依呼叫方式来决定。
在JavaScript中,函式都是Function的实例,所有Function都会有call()方法,可以决定this的参考对象。
例如:
sayHello.call(p1);
sayHello.call(p2);
call()第一个参数是用来指定this的参考物件,而之後的参数就依序对应函式引数
function saySomething(str){
console.log(`${this.name}我啊~,${str}☆`)
};
saySomething.call(p1,'最近刚始玩公主连结');
前面说call()方法,会决定this的参考对象,所以下面这个写法实际的this还是由call()决定
p1.say.call(p2);
我们可以藉由小小的调色盘App专案来加强我们对一些元件的认识 1.先新增一个专案 -> Cr...
tags: OC 30 day 什麽是Protocol? 作用:专门用来声明一大堆方法。(不能声明属...
前面介绍了 git merge 指令合并分支,本篇就来介绍另一种方式: Rebase 。 从 Reb...
影分身之术 网站正式上线运行时,会开始有使用者访问浏览,流量就会开始出现变化,当网站推广新活动或周年...
前言 今天是铁人赛的第十天,要来开始说说大叔的前端之路 并且说明我都看那些教学文件或影片 我是去年中...