求助:分析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中都报错了。希望大家帮忙分析一下这其中的原因(新手入门),谢谢了。