首页 热点资讯 义务教育 高等教育 出国留学 考研考公

javascript prototype疑惑

发布网友 发布时间:2022-04-21 19:30

我来回答

3个回答

热心网友 时间:2022-04-24 15:16

toString()这个方法,是在对象做类型转换成字符串的时候,自动调用的.比如alert(window),就等于alert(window.toString());,那么,alert(window.toString),你就可以看到,toString是怎么定义的了。
在解释你的代码,既然你使用了重写toString,那么,正确的使用方法,应该是:
alert("MyObj.prototype:"+obj1); 这样,就能够得到你想要的结果了 MyObj.prototype:MyObj1。
至于为什么,同样,咱们也alert(MyObj.prototype.toString);来看看,看到了么?就是你上面定义的方法。也就是说,alert(MyObj.prototype);就相当于alert(MyObj.prototype.toString());这样调用,没有初始化出一个MyObj对象,也就是没new MyObj();而是直接调用了你在上面定义的一个普通的函数而已,不是一个对象的方法。
表达能力有限,希望你能够看懂。

热心网友 时间:2022-04-24 16:34

return "MyObj"+this.id;
MyObj undefined,
undefined是this.id追问确如你所说undefined是this.id ,使用
MyObj.prototype.toString.call(obj1),this.id的值就能为1了,谢谢!

热心网友 时间:2022-04-24 18:09

function MyObj(id){
this.id = id;
this.toString = function(){return "MyObj"+this.id;};
}

var obj1 = new MyObj(1);
alert("MyObj.prototype:"+obj1.toString());

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com