为什么我自己的“toString()”函数在我的javascript中不起作用?

时间:2016-09-01 07:34:52

标签: javascript google-chrome printing tostring

我在chrome调试控制台中尝试过:

>function m(){function toString(){return "abc"}}
undefined
>new m().toString()
"[object Object]"

我希望它能打印出“abc”。为什么呢?

3 个答案:

答案 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();  
  }