JavaScript、ES6中类的this指向问题

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6</head> 7<body> 8 <button>按钮</button> 9 <script> 10 // this指向问题 11 var that; 12 var _that; 13 14 class Fa { 15 //constructor 里面的this指向的是 创建的实例对象(ff) 16 constructor(x, y){ 17 that = this; 18 this.x = x; 19 this.y = y; 20 this.btn = document.querySelector('button'); 21 this.btn.onclick = this.sing; 22 } 23 sing(){ 24 // this指向的是 btn这个按钮 因为这个按钮调用了这个函数 25 console.log("11111111111"); 26 console.log(that.x); 27 // that 里面存储的是constructor里面的this 28 29 // console.log(this.x); 30 31 } 32 sum(){ 33 //这个sum 里面的this指向的是实例对象ff 因为ff调用了这个函数(this指向sum方法的调用者ff) 34 _that = this; 35 console.log(this.x + this.y); 36 } 37 } 38 var ff = new Fa(1,2); 39 console.log(that === ff); // true 40 // console.log(ff); 41 // // Fa {x: 1, y: 2} 42 ff.sum(); 43 console.log(_that === ff); // true 44 45 </script> 46</body> 47</html>
点赞
收藏

评论区

加载中...

相关推荐

vue 2.0 第一个坑,组件不显示的问题

<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<titleappcomponent</title</head<body<ol<todoitem</todoit

svg自适应写法

svg自适应写法<pre<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<titleDocument</title</head<body<divstyle"width:30%;height:3.6rem;"<svg

JS高级

<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<title</title</head<body<script//为内置对象添加原型方法//实例中的方

JavaScript DOM操作案例自定义属性的设置跟获取

<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<title</title<styleli{liststyletype:none;

JavaScript DOM操作案例点击按钮显示图片

1<!DOCTYPEhtml2<htmllang"en"3<head4<metacharset"UTF8"5<title</title6</head7<body8<inputtype"button"v

HTML5 基础知识(二)

<!DOCTYPEhtml<htmllang"en"<head<metacharset"utf8"/<title</title</head<body</body</html<!DOCTYPEhtml

JavaScript、ES6中类的this指向问题 - HelloWorld