【发布时间】:2014-06-04 19:50:42
【问题描述】:
有什么方法可以在不初始化该类的对象的情况下从 JavaScript 类中获取函数和字段?
var SimpleClass = function() {
this.type = 'singleClassType';
this.getType = function() {
var self = this;
return self.type;
}
}
我想获取类型字段(类似于静态)。
我可以做这样的事情,但我真的不想使用类的原型:
SimpleClass.prototype.type = 'customName'
这是我使用的代码:
var Class1 = function(id) {
this.id = id;
}
Class1.prototype.type = 'class1';
var Class2 = function(id) {
this.id = id;
}
Class2.prototype.type = 'class2';
var Class3 = function(id) {
this.id = id;
}
Class3.prototype.type = 'class3';
var Class4 = function(id) {
this.id = id;
}
Class4.prototype.type = 'class4';
var xml = {},
xmlText = '';
$(document).ready(function(){
generateObjects();
});
function generateObjects() {
for(var i=1;i<5;i++){
if(typeof eval('Class'+i).prototype.getHtml === 'undefined'){
$.ajax({
dataType: 'xml',
url: 'file.xml',
async: false,
success: function(data){
xmlText = data;
addClassData();
}
});
function addClassData(){
xml['"'+eval('Class'+i).prototype.type+'"'] = xmlText;
}
eval('Class'+i).prototype.getHtml = function(){
var self = this;
return xml['"'+self.type+'"'];
}
}
var kl = eval('Class'+i),
obj = new kl(i);
console.log(obj.getHtml());
}
}
【问题讨论】:
-
我使用Mootools创建类,所以我可以使用initialize方法来改变property.type。但正如我所说,我正在寻找另一种方法来实现这一目标。
标签: javascript class oop object