Получение "метода неопределенного", когда он ЯСНО определен в JS - PullRequest
1 голос
/ 28 октября 2010

У меня есть очень простой фрагмент кода (зависит от jQuery):

var dom_builder = function() {

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

};

console.log(dom_builder.table);

Теперь, когда я пытаюсь запустить его, я получаю следующую ошибку: Uncaught TypeError: Object # не имеет метода'table'

Я не могу понять, почему я получаю эту ошибку.Я использовал методы таким способом бесчисленное количество раз раньше, без каких-либо проблем ..

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 28 октября 2010

Попробуйте это

var dom_builder = {

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

};
2 голосов
/ 28 октября 2010
console.log(new dom_builder().table);
1 голос
/ 28 октября 2010

dom_builder.table не существует, пока функция не будет запущена.

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