深入对象
创建对象的三种方式
构造函数
构造函数在技术上是常规函数。
不过有两个约定:
1.它们的命名以大写字母开头
2.它们只能由"new"操作符来执行。
内置构造函数
Object
e.g.Object静态方法
Array
1.数组常见实例方法-核心方法
reduce 执行过程:
1.如果没有起始值,则上一次值以数组的第一个数组元素的值
2.每一次循环,把返回值给做为下一次循环的上一次值
3.如果有起始值,则 起始值做为上一次值
e.g.
String
1.常见实例方法
e,g,
Number
实例成员&静态成员
编程思想
1.编程思想-面向过程和面向对象的对比
面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作,
面向对象是以对象功能来划分问题,而不是步骤
构造函数
原型
原型
this指向
构造函数和原型对象中的this 都指向 实例化的对象
constructor属性
每个原型对象里面都有个constructor 属性(constructor 构造函数)
作用:该属性指向该原型对象的构造函数,简单理解,就是指向我的爸爸,我是有爸爸的孩子
对象原型
原型继承
e.g.
原型链
查找原则
深浅拷贝
浅拷贝(拷贝的是地址
拷贝对象之后,里面的属性值是简单数据类型直接拷贝值
如果属性值是引用数据类型则拷贝的是地址
如果是简单数据类型拷贝值,引用数据类型拷贝的是地址(简单理解:如果是单层对象,没问题,如果有多层就有问题)
直接赋值VS浅拷贝
直接赋值的方法,只要是对象,都会相互影响,因为是直接拷贝对象栈里面的地址
浅拷贝如果是一层对象,不相互影响,如果出现多层对象拷贝还会相互影响
深拷贝(拷贝的是对象,不是地址
异常处理
异常处理是指预估代码执行过程中可能发生的错误,然后最大程度的避免错误的发生导致整个程序无法继续运行
throw抛异常
总结:
1.throw 抛出异常信息,程序也会终止执行
2.throw 后面跟的是错误提示信息
3.Error 对象配合 throw 使用,能够设置更详细的错误信息
try/catch捕获异常
可以通过try/catch 捕获错误信息(浏览器提供的错误信息) try试试 catch 拦住 finally 最后
总结:
1.try...catch 用于捕获错误信息
2.将预估可能发生错误的代码写在 try 代码段中
3.如果 try 代码段中出现错误后,会执行 catch 代码段,并截获到错误信息
4.finally 不管是否有错误,都会执行
debugger
处理this
this指向
普通函数
普通函数没有明确调用者时 this 值为 window,严格模式下没有调用者时 this 的值为 undefined