<script>
Function.pototype={
eat:function(){
console.log("说话");
}
}
function Person(name,age){
this.name=name;
this.age=age;
this.country=function(){
console.log(this.name+"来自"+country);
};
}
Person.eat();
</script>
*****为什么最后报错说 eat()不是一个function啊?*****
改成这样吧:
你在Console里面试一下就会知道,对Function.prototype赋值并没有产生效果。写完了Function.prototype还是{},所以你调用Person.eat当然会失败。
首先
prototype
打错了。。。另外我在控制台试着打印Function.prototype
发现返回的是一个空函数,不是一个对象,所以你这样赋值应该是错的。传送门自己看看吧
因为类似于
Object.prototype
和Function.prototype
等是不可以更改的,就类似与下面的这个obj对象的x属性:Person.prototype.eat=function(){
我不懂你什么意思,是这个吗
我觉得楼上几个说法倒是没错 不过楼主你新定义的构造函数貌似没有继承原型函数……楼上的答案加上我说的这个应该是可以输出了