var a=b=c 的解释:
从右边开始,b=c;如果c是基本数据,就将其赋值给b;如果c是引用数据,就是b和c都指向/引用同一个空间。
a=b也是一样。虽然a是最后赋值(引用)的,但是a的引用声明是一开始就有了。
this 基本上就代表的是对象,在极其少的时候,this不是对象==>call、apply、bind
五、构造函数
JS是一个基于面向对象的单线程的脚本语言
new fn() 解释:
new关键字后面跟函数,是一个表达式(运算符),创建对象的运算,整个表达式一定会得到一个对象
1、创建一个空对象 {}
2、运行构造函数,让内部的this指向创建的对象(用创建的空对象去调用构造函数) {}.fn()
3、整个表达式的结果,看函数的返回值:(可能是数组、函数.....)
返回值是引用数据,就是返回值
返回值不是引用数据,那么就是这个运行完毕之后的创建的那个对象
任何对象都有构造函数,任何对象都是函数创建出来的(null除外)
new ==>后面一般跟一个函数,new会创建对象,而且会去调用这个函数
new fn==> 创建对象,然后调用函数,不传参 ==>new无参
new fn()==> 创建对象,然后调用函数,并传参 ==>new带参