Javascript 如何通过函数向类提供选项列表?
我正在用javascript尝试使用extend.js创建类。我在课堂上遇到了一些问题,不确定我是否需要它们,但我认为这一个会很有用。它是一个只获取一些数据库表数据的类Javascript 如何通过函数向类提供选项列表?,javascript,Javascript,我正在用javascript尝试使用extend.js创建类。我在课堂上遇到了一些问题,不确定我是否需要它们,但我认为这一个会很有用。它是一个只获取一些数据库表数据的类 var TableData = Class.extend(function(){ this.rowId; this.action; this.returnWhat; this.tableType; this.php; this.query = function(){ if (t
var TableData = Class.extend(function(){
this.rowId;
this.action;
this.returnWhat;
this.tableType;
this.php;
this.query = function(){
if (this.returnWhat) this.action += '_' + this.returnWhat;
var postData = { func : this.action };
if (this.rowId) $.extend(postData, { rowId : this.rowId });
$.post(this.php, postData, function(data){
if(data){this.data = data;}
});
return this.data;
};
});
我只知道一些表,所以我只是将它们存储为变量/选项,但我不知道如何正确设置类变量。例如,这个例子不起作用,但可能说明我正在尝试做什么
var options = {
rowId : '*',
action : 'get',
returnWhat : 'all'
}
var league = function (options){
this.tableType = 'league';
this.rowId = options.rowId;
this.action = options.action;
this.returnWhat = options.returnWhat;
this.php = 'php/' + options.tableType + '.php';
}
var tableData = new TableData(assoc_league);
我一直喜欢这个主意
(function(my, $){
var cfg = {
rowId: null,
action: null,
returnWhat: null,
tableType: null,
url: null
};
my.init = function(options) {
if (options != undefined) {
for (var k in options) {
if (!options.hasOwnProperty(k)) continue;
cfg[k] = options[k];
}
}
return this;
};
my.fetchData = function(data, callback) {
$.post(cfg.url, data, function(resp) {
callback(resp);
});
}
})(window.myapp, window.jQuery);
//---------------
myapp.init({
url: '/blah/blah'
})
.fetchData({animal1: 'monkey', animal2: 'zebra'}, function(data){
});
嗯,这是一个疯狂的方式来实现一些简单的事情。另外,在var league中,您可能最好将this.php设置为使用this.tableType,否则在您的示例中,它将是未定义的。我不知道是因为我使用类的想法错误,还是因为我不应该使用类。还有$。post是异步的,所以返回这个。data不会返回任何东西。我不确定它是返回这个还是返回$。。。测试和查看:)我刚刚意识到我的代码中有一个底线。。我现在会改正的。不能将jquery和myapp作为$:)我不记得为什么我选择这个作为答案-我得到的答案是未定义的,只是括号应该是}(window.myapp,window.jquery));您好,测试人员23223,您在哪个浏览器中测试它?