前言
我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 微信公众号前端小歌谣
类笔记2
类中的所有代码都会在严格模式下执行 * 严格模式下其中一个特点就是,函数的this不在是window,而是undefined * * 注意: * 在类中方法的this不是固定的 * 以方法形式调用时,this就是当前的实例 * 以函数形式调用,this是undefined * 在开发时,在有些场景下,我们希望方法中的this是固定的,不会因调用方式不同而改变 * 如果遇到上述需求,可以使用箭头函数来定义类中的方法 * 如果类中的方法是以箭头函数定义的,则方法中的this恒为当前实例,不会改变
代码案例
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>类</title>
<script>
class MyClass{
constructor() {
// this.fn = this.fn.bind(this); 将fn方法的this绑定为当前实例
}
/*
* 类中的所有代码都会在严格模式下执行
* 严格模式下其中一个特点就是,函数的this不在是window,而是undefined
*
* 注意:
* 在类中方法的this不是固定的
* 以方法形式调用时,this就是当前的实例
* 以函数形式调用,this是undefined
* 在开发时,在有些场景下,我们希望方法中的this是固定的,不会因调用方式不同而改变
* 如果遇到上述需求,可以使用箭头函数来定义类中的方法
* 如果类中的方法是以箭头函数定义的,则方法中的this恒为当前实例,不会改变
*
* */
// fn(){
// console.log('-->',this);
// }
fn = () => {
console.log('-->',this);
};
}
const mc = new MyClass();
const test = mc.fn;
mc.fn(); // mc
test(); // undefined
const fn2 = function (){
console.log(this);
};
// fn2();
</script>
</head>
<body>
</body>
</html>
标签:调用,歌谣,前端,笔记,类中,函数,方法,fn,undefined
From: https://blog.51cto.com/u_14476028/6895125