在javascript中调用链方法

S.S*_*Sid 1 javascript

我使用以下代码,但它不断给我错误:

TypeError:container("accounts").atPosition("#left-top")未定义

代码是:

function container(name, position) {
    return {
        pos: null,
        atPosition: function(position) {

            $(position).html(this.newContainer());
            //$(position+" .main").html("yes");
            this.pos = position;
        },
        populateData: function(rdata) {
            $("#left-top .main").html(rdata);
        },
        newContainer: function() {
            //alert(this.pos);
            return '<h3>' + name.toTitleCase() + '</h3>\
                <div class="main">\
                </div>';
        }
    };
}

container('accounts').atPosition('#left-top').populateData("yahoo!!!!");?
Run Code Online (Sandbox Code Playgroud)

为什么我收到此错误,我该如何解决?

Ano*_*oop 7

你应该this从链接函数返回.默认情况下,函数返回undefined(如果你不使用new operator).通过从没有任何东西返回的函数返回这将有助于链接.

function container(name, position) {
    return {
        pos: null,
        atPosition: function(position) {
            $(position).html(this.newContainer());
            //$(position+" .main").html("yes");
            this.pos = position;

            return this;
        },
        populateData: function(rdata) {
            $("#left-top .main").html(rdata);
            return this;
        },
        newContainer: function() {
            //alert(this.pos);
            return '<h3>' + name.toTitleCase() + '</h3>\
                <div class="main">\
                </div>';
        }
    };
}?
Run Code Online (Sandbox Code Playgroud)