求助:分析javascript的继承模式问题

<script type="text/java>
    function object(obj){
        function f(){}
        f.prototype = obj;
        return new f();
    }    

    function createAnother(obj){
         var tmp = object(obj);
         //alert(tmp.prototype);//这里应该是什么结果???
         //tmp.prototype.sayHi = function(){//会报错
        tmp.sayHi = function(){
               alert('Hi'); 
        }; 
    return tmp; } function Person(name){ this.name = name; this.color = ['red','blue']; this.sayHello = function(){ alert('Hello!'); }; } var instance = createAnother(new Person('craig')); instance .sayHi(); </script>
上面的代码是经典的寄生式继承模式。按照自己的理解这里的
tmp.prototype应该就是指向Person,tmp.prototype.sayHi方法也不应该报错,但在IE9和chrome中都报错了。希望大家帮忙分析一下这其中的原因(新手入门),谢谢了。

 

posted @ 2014-10-29 17:11  Craig.Q  阅读(329)  评论(2编辑  收藏  举报