原型与闭包(二)
对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象,还是数组,还是new Number等等。这个时候就需要用到instanceof A Instanceof B A是一个对象,B是一个函数 沿着A的__proto__这条线来找,同时沿着B的prototype这条线来找,如果两条线能找到同一个引用,即同一个对象,那么就返回true。如果找到终点还未重合,则返回false。 instanceof表示的就是一种继承关系,或者原型链的结构 继承 访问一个对象的属性时,先在基本属性中查找,如果没有,再沿着__proto__这条链向上找,这就是原型链; 在实际应用中如何区分一个属性到底是基本的还是从原型中找到的呢? hasOwnProperty 由于所有的对象的原型链都会找到Object.prototype,因此所有的对象都会有Object.prototype的方法。这就是所谓的“继承”。 每个函数都有call,apply方法,都有length,arguments,caller等属性 继承的Function.prototype中的方法; 对象属性可以随时改动 可以自定义一个函数,并自己去修改prototype.toString()方法