js 的 instanceof 很简单!

如何判断 instanceof 返回真

只要判断右边的值是否是左边对象的构造函数或原型对象上的构造函数即可

// example
var arr = [];

由于:
1. arr.constructor === Array
2. arr.__proto__ === Array.prototype
3. arr.__poto__.proto__ === Object.prototype

所以, 以下都返回true
1. arr instanceof arr.constructor(Array)
2. arr instanceof arr.__proto__.constructor(Array)
3. arr instanceof arr.__proto__.__poto__.constructor(Object)


如果你了解原型链的话,你很快就会得出一些结论:
1. 所有对象 instanceof Object 都会返回 true
2. 所有函数 instanceof Function 都会返回 true

  

posted @ 2017-06-09 01:00  ax=null  阅读(1891)  评论(0编辑  收藏  举报