【问题标题】:Getting "method undefined" when it is CLEARLY defined in JS在 JS 中明确定义时获取“方法未定义”
【发布时间】:2010-10-28 16:05:24
【问题描述】:

我有一段非常简单的代码(依赖于 jQuery):

var dom_builder = function() {

    this.table = function(elem,attributes) {
        return $("<table>").attr(attributes).appendTo(elem);
    }

};

console.log(dom_builder.table);

现在当我尝试运行它时,我收到以下错误:Uncaught TypeError: Object # has no method 'table'

我一生都无法弄清楚为什么会出现此错误。我以前无数次使用过这种方法,没有任何问题..

有什么想法吗?

【问题讨论】:

    标签: javascript jquery methods undefined


    【解决方案1】:

    试试这个

    var dom_builder = {
    
        "table": function(elem,attributes) {
            return $("<table>").attr(attributes).appendTo(elem);
        }
    
    };
    

    【讨论】:

    • 很好,完全不同的方法,它无需启动下面推荐的功能即可工作:) 很好
    【解决方案2】:
    console.log(new dom_builder().table);
    

    【讨论】:

    • 你需要括号,比如 console.log(new dom_builder().table()) 才能工作
    • @cambraca Anurag 的语法是有效的。这完全是关于您要演示的内容,我认为他想证明使用这种语法确实存在该函数。
    • @Adam Backstrom 它是有效的,但它不会按预期工作。它将返回函数,而不是函数结果,这是需要的,不是吗?
    • 谢谢!完全是我自己的错,这会教我复制旧代码。
    【解决方案3】:

    dom_builder.table 在函数运行之前不存在。

    console.log(dom_builder.table); // undefined
    d = new dom_builder();
    console.log(d.table); // function(elem, attributes) { ... }
    

    【讨论】:

      猜你喜欢
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 2021-12-12
      • 2016-06-13
      • 1970-01-01
      • 2014-09-03
      相关资源
      最近更新 更多