目录
【第二章】函数进阶
| (复习)函数声明
| 函数也是对象
| 函数的this指向
| 改变函数this的指向
| 函数的“严格模式”
| 闭包
| 浅拷贝和深拷贝

Java中的方法好像不是对象!只是对象的一个方法
函数是对象,函数也有Function的原型对象。所有的函数的f对象实例也可以访问其prototype原型对象。


方法1:call()
方法2:apply()
方法3:bind()
三者总结

更多严格模式要求参考:严格模式 - JavaScript | MDN
什么是闭包
闭包就是一个函数:变量所在的函数就是闭包(函数)
也可以说:任何一个函数的作用域,如果可以访问其它函数内部的局部变量,则产生了闭包现象

闭包的作用:在f 作用域的外部,访问f作用域内的局部变量
在JS中,方法(函数)是一个对象,因此可以return
代码示例
Document
浅拷贝
浅拷贝指的是:不同对象之间赋值,若是基本数据类型,则可以完整独立地赋值给新对象,但是对于对象内的对象类型,则只能赋值地址给新对象
浅拷贝示例

浅拷贝语法(语法糖,即上述for循环遍历赋值的JS的一个内置函数封装)
Object.assign(Ctrl+V的对象, Ctrl+C的对象);

深拷贝
原理:利用递归函数,把对象中的对象也用for循环赋值给新的对象
深拷贝没有语法糖,需要我们自己编写函数!
Document