第二部分 this 和对象原型
第2章 this全面解析
关于this的绑定书中划分为四种:
- 默认绑定
- 隐式绑定
- 显式绑定
- new绑定
默认绑定
即独立函数调用
function foo(){
console.log(this.a)
}
var a = 2
foo()
这是我们最常用的一种情况
第3章 对象
对象可以通过两种形式定义
const obj = {}
const obj = new Object()
两种方式没有区别,一般用对象字面量的多。
es5之前,javascript共有六种类型:string、number、boolean、null、undefined、object。其中前五种为基本类型,有时null会被当做一种对象类型。typeof null === 'object'//true实际上null为基本类型。
内置对象:
- String
- Number
- Boolean
- Object
- Function
- Array
- Date
- RegExp
- Error
这些内置对象很像Java中的类(class),但是在JS中,它们只是一些函数,只是由于JS的特性,他们可以作为构造函数。
const str = "I am a str"
这样str只是存储了一个字面量,而不是对象,如果想要访问字符串的长度等,则需要将其转换为String对象(会自动装箱)。
在js的对象中,属性名是一个字符串。
函数并不属于对象,对象只是保存了一个引用。
我们用Object.assign(target, origin)来浅复制对象。