如何为对象命名以进行调试?

时间:2013-12-20 10:20:47

标签: javascript oop debugging

我遇到这种情况:

var Dog = function(name) {
    this.name = name;
}

var myDog = new Dog("Lucky");
myDog.bark();

我想知道是否有办法给对象命名,并在抛出此类错误时在控制台中看到它:

Object [object Object] has no method 'bark'

我很想看到类似的东西:

Object [Dog] has no method 'bark'

用JavaScript做任何可能吗?

1 个答案:

答案 0 :(得分:7)

免责声明:正如Cedric Reichenbach评论的那样,这是一种特定于浏览器的行为。

请勿使用匿名函数声明 相反,您应该使用function声明:

function Dog(name) {
  this.name = name;
}

var myDog = new Dog("Lucky");
myDog.bark(); // TypeError: Object #<Dog> has no method 'bark'

或者使用命名函数:

var Dog = function Dog(name) {
  this.name = name;
}

var myDog = new Dog("Lucky");
myDog.bark(); // TypeError: Object #<Dog> has no method 'bark'