0

我知道我在某处看到了一个很好的描述的链接,但是我无法再次挖掘它。我在 Javascript 中使用 console.log 进行堆栈跟踪时遇到了问题,因为它们都变得模棱两可(通常与调用代码的实际位置完全无关)。

这当然是不利的。

var myObject = Class.extend({
    init: function() {
        Do Stuff Here
    },

    doOtherStuff: function() {
        Incorrect Stuff Here - Throws Error
    }
});

var objInstance = new myObject;
objInstance.doOtherStuff;       // Error!

它不会告诉我 Firebug 堆栈跟踪中发生错误的位置。我知道有办法解决这个问题,但我似乎无法弄清楚。我知道我遗漏了一些明显的东西。感谢您为我指明正确的方向!

编辑:添加了 John Resig Class 声明。使用它们这么久,忘记了原型设计(糟糕),只是没有写它。修复它所以这是实际代码(以为我很聪明,绕过放置类声明以防止混淆......最终看起来很愚蠢)

4

2 回答 2

0

这实际上是新的错误用法。myObject应该有一个功能。并且这两种方法都应该影响到 myObject.prototype.init 和 myObject.prototype.doOtherStuff。

此外,就它现在是一个类而言,它的名称不应该让人想到一个对象,它的第一个字母应该是大写的。

如果您实际上不想使用 new 关键字而只是克隆对象,则必须查找或编写克隆例程。

于 2013-04-02T06:45:40.747 回答
0

看看这个 js oop 指南 https://developer.mozilla.org/en-US/docs/JavaScript/Introduction_to_Object-Oriented_JavaScript

于 2013-04-02T06:49:58.133 回答