原型和必包

原型

每一个函数,不管是构造函数,还是普通函数,都有一个 prototype 属性,这个属性就是原型对象,但是普通函数的 prototype 没有任何意义. 当函数以构造函数执行的时候,所创建的对象中有一个隐含的属性proto,这个属性指向原型对象prototype

闭包

产生闭包的条件

  • 函数嵌套
  • 内部函数引用了外部函数的变量
function f1() {
    var a = 5;
    var b = "abc";
    function f2() {
        console.log(a);
    }
}
f1();
// 这样就产生了闭包,只要执行函数定义就产生了闭包(f2不必执行,但是必须必须引用了外部函数的变量)

作用域链之所以能够向上级作用域链查找,就是因为存在闭包

in 和 hasOwnProperty

in 会检测原型链
每一个对象都有hasOwnProperty方法,用来检测自己是否包含某个属性

instanceOf 和 constructor

两个检测引用类型的方法

var ary = []
ary instanceOf Array // true
ary.constructor === Array // true
原文地址:https://www.cnblogs.com/flyerya/p/13955803.html