alert(nf); // 5
为什么alert弹出的是5呢?
而console.log(nf); 却是numCount
我把numCount.prototype.toString改成numCount.prototype.toString1
alert就弹出[object Object]..
这是什么原因啊?
function numCount(){ var answer = 0; } numCount.prototype.addNumbers = function(num1,num2){ this.answer = num1 + num2; } numCount.prototype.toString = function(){ return this.answer; } var nf = new numCount(); nf.addNumbers(2,3); console.log(nf); // numCount alert(nf); // 5
不知道你是怎么测试的,我这边的测试结果是都是一个numCount对象:
把numCount.prototype.toString2改成numCount.prototype.toString
alert(nf)等价于alert(nf.toString())
alert()函数内部会调用toString()方法,但是console.log()函数却不是直接调用的toString()方法。
比如console.log()输出多层嵌套的数组的时候,尤其明显。