我在chrome调试控制台中尝试过:
>function m(){function toString(){return "abc"}}
undefined
>new m().toString()
"[object Object]"
我希望它能打印出“abc”。为什么呢?
答案 0 :(得分:4)
您没有使用自己的toString
方法(m
内部的私有函数),而是来自Object
的方法。
对于您自己的方法,您需要将toString
方法分配给m
的原型,例如
m.prototype.toString = function () { return 'abc'; };
function m() {}
m.prototype.toString = function () { return 'abc'; };
console.log((new m).toString());
答案 1 :(得分:2)
试试这个。
function m() {
this.toString = function() {
return "abc";
}
}
var m1 = new m();
alert(m1.toString());
答案 2 :(得分:0)
你的代码错了。您可以尝试此代码并在此处检查输出http://jsbin.com/luremulano/edit?html,js,console,output
console.log(m('abc'));
function m(a){
return a.toString();
}