<script>
var d=function kk(){}; 
var t=new kk();
var s=new d();alert(d.constructor.prototype);
alert(t.constructor.prototype);
alert(s.constructor.prototype);
</script>输出分别是function prototype(){[native code]},[object Object],[object Object]为啥子哦?[object Object]和function prototype(){[native code]} 是什么东西?

解决方案 »

  1.   

    js对象吧,不是很明白,google 一下吧
      

  2.   

    constructor属性始终指向创建当前对象的构造函数
    t,s都是由kk函数构造出来的
    t.constructor和 s.constructor 的就是kk函数了
    可以测试一下
    function kk(){}; 
    var t = new kk(); 
    var s = new kk();
    if(t.constructor===kk)
    alert('1')
    if(s.constructor===kk)
    alert('2')
    t.constructor.prototype就是kk.prototype 了
    kk.prototype是objet类型的  弹出来就是[object Object]/--------------------------------------
    var d=function kk(){};  //这么写不规范 firefox下报错了
    d.constructor.prototype
    d引用的kk
    可以看承是kk.constructor.prototype
    kk是 function  
    那么kk.constructor就是Function了
    d.constructor.prototype  就是 Function.prototype可以测试一下
     function kk(){}
     var d = kk;
     alert(d.constructor.a); //undefiend
     Function.prototype.a = "a"; //给Function.prototype加个a属性
     alert(d.constructor.a);  // d.constructor就多了个a属性