CiCeng
Google站内搜索
站内栏目
首页    JS对象   JavaScript原型链prototype
JavaScript原型链prototype
【作者:CCScript整理 阅读:198 最后更新:09-11-20】
window.onload = function(){
        
/**//*
           每个对象实例都有个属性成员用于指向到它的instanceof 对象(暂称为父对象)的原型(prototype)
           我们把这种层层指向父原型的关系称为[原型链 prototype chian]
           原型也具有父原型,因为它往往也是一个对象实例,除非我们人为地去改变它


           在JavaScript中,"一切都是对象,函数是第一型。"
           Function和Object都是函数的实例。
           Function的父原型指向到Function的原型,Function.prototype的父原型是Object的原型
           Object的父原型也指向到Function的原型,Object.prototype是所有父原型的顶层

           在spiderMonkey引擎中,父原型可以通过 __proto__ 进行访问



           大家在看的时候最后能反复的读几篇,能加深理解,尤其是原型,父原型,还有原型链的意思.

        *  prototype  访问的是原型
        *  __proto__  访问的父原型
        *  instanceof 原型链的父类

        
*/

        Function.prototype.hi
= function(){alert('hi Function');}
        Object.prototype.hi
= function(){alert('hi Object');}

        
var a = function(){
            
this.txt = 'a';
        }
;
        a.prototype
= {
            say:
function(){alert('a');}
        }
;

        alert(a
instanceof Function);//a是Function的实例;
        alert(a.__proto__ === Function.prototype);
        
//a的父原型指向到Function的原型;
        //a.__proto__父原型 Function
        //Function.prototype 父原型 Function

        alert(Function
instanceof Object);
        
//Function是Object的实例;

        alert(Function.__proto__
=== Function.prototype);
        
//Function的父原型指向到Function的原型;

        alert(Function.prototype.__proto__
=== Object.prototype);
        
//Function的原型的父原型指向到Object的原型

        alert(Object.__proto__
=== Function.prototype);
        
//Object的父原型指向到Function的原型;
        alert(Object.prototype.__proto__);
        
//Object的原型是所有父原型的顶端,它不再具有父原型,所以结果为null;


        alert(a.prototype
instanceof Object);
        
//a的原型也是一个对象
        alert(a.prototype.__proto__ === Object.prototype);
        
//a的原型的父原型指向Object的原型
    }
;

联系我们   |  法律声明   |  关于   |  合作伙伴
© 2008 CiCeng.CCScript 版权所有 保留所有权利
沪ICP备08115912号