0

这段代码给了我一个错误:

$(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(); }
}

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

4

1 回答 1

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(); }
}
于 2012-12-05T20:39:45.630 回答