今天使用了es6 写了一个简单的小游戏 但刚开始并没有搞定 出现许多小问题 就是对象和this掌握得不好 所以老师给我们复习了this
this
this 代表代码在运行时 的一个对象
this代表
var str="hello"
str.split() 基本数据 遇到当做对象使用时 引擎会先为我们隐式的执行一行代码
var 包装对象=new String(str); 包装对象.split()
**this是哪个对象? **
this就是funtcion这个单词 的调用者,没找到就是环境对象
这调用它 this 就指向谁
new过程
| 3.1创建对象(new这个单词后面那个函数/类名的构造函数的prototype属性指向的对象) | |
| 创建一个空对象,把空对象的__proto_属性赋值为函数的prototype属性指向的对象 | |
| 3.2 去执行new后面的那个类型对应的构造函数 , 构造函数内部的this 指定为创建的空对象 |
// var f1=new fn()
//var f1={} ,f1.__proto_=fn.prototype
//fn.call(f1)
| **4.class** | |
| class 内部一定有个方法 constructor 如果我们自己写了 就会覆盖系统的 | |
| es5的构造函数的区别: | |
| es5的函数即是构造函数 也是类型 function fn(){} | |
| es6的类,class是类型 内部的constructor方法才是构造函数 |
| 使用? | |
| 类型是为了创建预知对象提前设计的代码,只声明不运行,创建对象时才运行 | |
| 对象的成员也一样,只保存数据(属性和方法) 不会使用数据 | |
| 主动使用对象的成员 , 对象保存的数据才会被使用 | |
| p1.name | |
| // p1.say() | |
| //属性往往是保存数据的==>体现出一些功能 | |
| //方法往往是操作属性数据 |