2020.4.20-2020.4.26
学习到的新知识
-
arguments :伪数组
- 具有数组的length属性
- 按照索引的方式存储的
- 没有真正数组的一些方法 pop() , push()等
- 它里面储存了所有传递过来的参数
-
函数的两种声明方式
- 利用函数关键字自定义函数(命名函数):function fn() {}
- 函数的表达式(匿名函数):var 变量名 = function() {}
-
构造函数的原型
- 构造函数的弊端:存在浪费内存的问题。
- 原型:每一个构造函数都有一个 prototype 属性,指向另一个对象。这个 prototype 就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有。
- 原型的作用:资源共享。
-
原型链
每一个实例对象又有一个__proto__属性,指向的构造函数的原型对象,构造函数的原型对象也是一个对象,也有__proto__属性,这样一层一层往上找就形成了原型链。 -
利用父构造函数继承属性
- 定义父构造函数,为父元素添加一些属性
- 定义子构造函数,子构造函数要继承父构造函数中的属性
- 在子构造函数中通过 call() 把父类型的 this 指向子类型的 this ,这样就 可以实现子类型继承父类型的属性
-
this指向
- 普通函数 this 指向window
- 对象的方法 this指向的是对象
- 构造函数 this 指向 构造函数new出来的实例对象
-
闭包
- 概念:闭包(closure)指有权访问另一个函数作用域中变量的函数,一个作用域可以访问另外一个函数的局部变量。
- 主要作用: 延伸了变量的作用范围。
- 第一种:在函数 fn() 中创造一个函数fun(),并在fn()中引用fun()
- 第二种:在函数 fn() 中创造一个函数fun(),并且函数fn() 返回函数fun() 即(return fun)