Javascript对象实例和文档准备好了

时间:2012-12-05 18:52:30

标签: javascript oop dom

此代码给出了一个错误:

$(function(){
    var instance = new object();
    literal.call();
});
var literal ={
    call : function(){
        instance.foo();
    }
}
function object(){
    this.selector = $('div');
    this.foo = function(){ this.selector.remove(); }
}

我想让它运行,我想让$(function(){})中的文字对象出来。我不想在以后更改选择器。

所以我放弃了这个解决方案

$(function(){
    instance.selector = $('div');
    literal.call();
});
var instance = new object();
var literal ={
    call : function(){
        instance.foo();
    }
}
function object(){
    this.selector = $('div');
    this.foo = function(){ this.selector.remove(); }
}

我也放弃了这个

$(function(){
var instance = new object();
var literal ={
    call : function(){
        instance.foo();
    }
}
literal.call();
});
function object(){
    this.selector = $('div');
    this.foo = function(){ this.selector.remove(); }
}

这样做的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

您的问题是istance变量是就绪处理程序的本地变量。由于您不想在那里移动代码(无论出于何种原因),您需要将变量设置为全局:

var istance;
$(function(){
    istance = new object();
    literal.call();
});
var literal = {
    call: function() {
        istance.foo();
    }
}
function object(){
    this.selector = $('div');
    this.foo = function(){ this.selector.remove(); }
}