首页 > 其他 > 详细

instanceof

时间:2018-11-14 20:19:08      阅读:153      评论:0      收藏:0      [点我收藏+]
        // instanceof  内部实现原理 
        console.log(instance_of(Function, Function));
        function instance_of(L, R) { 
            var O = R.prototype;
            L = L.__proto__; 
            while (true) {
                if (L === null)
                    return false;
                if (O === L) 
                    return true;
                L = L.__proto__;
            }
        }
        
        Function instanceof Function
        //right: Function.prototype   ( Function 函数 对应的匿名函数对象 )
        //left: Function.__proto__    ( Function 函数 对应的匿名函数对象 )

        Object instanceof Function;
        //right: Function.prototype   ( Function 函数 对应的匿名函数对象 )
        //left: Object.__proto__    ( Function 函数 对应的匿名函数对象 ) 

        Object instanceof Object
        //right: Object.prototype   ( Object 函数 对应的原型对象 )
        //left: Object.__proto__    ( Function 函数 对应的匿名函数对象 )    Object.__proto__ .__proto__  ( Object 函数 对应的原型对象 )

        Function instanceof Object;
        //right: Object.prototype   ( Object 函数 对应的原型对象 )
        //left: Function.__proto__    ( Function 函数 对应的匿名函数对象 )    Function.__proto__.__proto__    ( Object 函数 对应的原型对象 )

 

Object 是函数
函数也是对象,对象(除了null)都有 __proto__ 属性,指向其原型函数,通过 __proto__ 属性形成原型链。
构造函数的 constructor 都指向 Function
Function 的 prototype 指向一个特殊匿名函数,且这个特殊匿名函数的 __proto__ 指向 Object.prototype

 

参考链接

 

instanceof

原文:https://www.cnblogs.com/justSmile2/p/9960024.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!