如何获取Javascript类字段和函数
是否有任何方法可以从JavaScript类中获取函数和字段,而无需初始化该类的对象如何获取Javascript类字段和函数,javascript,class,oop,object,Javascript,Class,Oop,Object,是否有任何方法可以从JavaScript类中获取函数和字段,而无需初始化该类的对象 var SimpleClass = function() { this.type = 'singleClassType'; this.getType = function() { var self = this; return self.type; } } 我想得到类型字段(类似于static) 我可以这样做,但我真的不想使用类的原型: SimpleCla
var SimpleClass = function() {
this.type = 'singleClassType';
this.getType = function() {
var self = this;
return self.type;
}
}
我想得到类型字段(类似于static)
我可以这样做,但我真的不想使用类的原型:
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());
}
}
var Class1=函数(id){
this.id=id;
}
Class1.prototype.type='Class1';
var Class2=函数(id){
this.id=id;
}
Class2.prototype.type='Class2';
var Class3=函数(id){
this.id=id;
}
Class3.prototype.type='Class3';
var Class4=函数(id){
this.id=id;
}
Class4.prototype.type='Class4';
var xml={},
xmlText='';
$(文档).ready(函数(){
生成对象();
});
函数生成器对象(){
对于(var i=1;i访问属性/字段,如下所示:
var SimpleClass = function(){
this.type = 'singleClassType';
this.getType = function(){
var self = this;
return self.type;
}
}
SimpleClass["type"] = 'customName';
alert(SimpleClass["type"]);
应该也行。看看
为了避免@PaulS在其评论中指出的问题,请查看有关使用JavaScript的OOP概念的更详细信息。如下访问属性/字段:
var SimpleClass = function(){
this.type = 'singleClassType';
this.getType = function(){
var self = this;
return self.type;
}
}
SimpleClass["type"] = 'customName';
alert(SimpleClass["type"]);
应该也行。看看
为了避免@PaulS在其评论中指出的问题,请查看有关使用JavaScript的OOP概念的更详细信息。如下访问属性/字段:
var SimpleClass = function(){
this.type = 'singleClassType';
this.getType = function(){
var self = this;
return self.type;
}
}
SimpleClass["type"] = 'customName';
alert(SimpleClass["type"]);
应该也行。看看
为了避免@PaulS在其评论中指出的问题,请查看有关使用JavaScript的OOP概念的更详细信息。如下访问属性/字段:
var SimpleClass = function(){
this.type = 'singleClassType';
this.getType = function(){
var self = this;
return self.type;
}
}
SimpleClass["type"] = 'customName';
alert(SimpleClass["type"]);
应该也行。看看
为了避免@PaulS在其评论中指出的问题,请查看有关使用JavaScript的OOP概念的更全面信息
是否有任何方法可以从JavaScript类中获取函数和字段,而无需初始化该类的对象
var SimpleClass = function() {
this.type = 'singleClassType';
this.getType = function() {
var self = this;
return self.type;
}
}
不,除非你,否则就解析JS代码并查找属性分配
我可以这样做,但我真的不想使用类的原型:
SimpleClass.prototype.type = 'customName'
如果这个字段应该在类的所有实例之间共享,那么使用prototype没有什么错
如果“static”的意思是它是类成员而不是实例成员,那么也可以将属性直接放在构造函数上:
var SimpleClass = function() {
this.getType = function() {
return SimpleClass.type;
// alternatively, something like `this.constructor.type`
// but only if you understand when this works and when not
}
}
SimpleClass.type = 'singleClassType';
是否有任何方法可以从JavaScript类中获取函数和字段,而无需初始化该类的对象
var SimpleClass = function() {
this.type = 'singleClassType';
this.getType = function() {
var self = this;
return self.type;
}
}
不,除非你,否则就解析JS代码并查找属性分配
我可以这样做,但我真的不想使用类的原型:
SimpleClass.prototype.type = 'customName'
如果这个字段应该在类的所有实例之间共享,那么使用prototype没有什么错
如果“static”的意思是它是类成员而不是实例成员,那么也可以将属性直接放在构造函数上:
var SimpleClass = function() {
this.getType = function() {
return SimpleClass.type;
// alternatively, something like `this.constructor.type`
// but only if you understand when this works and when not
}
}
SimpleClass.type = 'singleClassType';
是否有任何方法可以从JavaScript类中获取函数和字段,而无需初始化该类的对象
var SimpleClass = function() {
this.type = 'singleClassType';
this.getType = function() {
var self = this;
return self.type;
}
}
不,除非你,否则就解析JS代码并查找属性分配
我可以这样做,但我真的不想使用类的原型:
SimpleClass.prototype.type = 'customName'
如果这个字段应该在类的所有实例之间共享,那么使用prototype没有什么错
如果“static”的意思是它是类成员而不是实例成员,那么也可以将属性直接放在构造函数上:
var SimpleClass = function() {
this.getType = function() {
return SimpleClass.type;
// alternatively, something like `this.constructor.type`
// but only if you understand when this works and when not
}
}
SimpleClass.type = 'singleClassType';
是否有任何方法可以从JavaScript类中获取函数和字段,而无需初始化该类的对象
var SimpleClass = function() {
this.type = 'singleClassType';
this.getType = function() {
var self = this;
return self.type;
}
}
不,除非你,否则就解析JS代码并查找属性分配
我可以这样做,但我真的不想使用类的原型:
SimpleClass.prototype.type = 'customName'
如果这个字段应该在类的所有实例之间共享,那么使用prototype没有什么错
如果“static”的意思是它是类成员而不是实例成员,那么也可以将属性直接放在构造函数上:
var SimpleClass = function() {
this.getType = function() {
return SimpleClass.type;
// alternatively, something like `this.constructor.type`
// but only if you understand when this works and when not
}
}
SimpleClass.type = 'singleClassType';
这不会被实例继承(除非您添加并通过构造函数继承)问题是关于获取所有字段和函数,而不仅仅是一个字段,例如type字段。@SO的那篇文章演示了如何迭代类的实例。关于主题问题:您是对的!这不会被实例继承(除非您添加并通过构造函数继承)问题是关于获取所有字段和函数,而不仅仅是一个,例如类型字段。@pasty,来自SO的文章展示了如何迭代类的实例。关于主题问题:您是对的!这不会被实例继承(除非您添加并通过构造函数)问题是关于获取所有字段和函数,而不仅仅是一个,例如类型字段。@pasty,来自SO的文章展示了如何迭代类的实例。关于主题问题:您是对的!这不会被实例继承(除非您添加并通过构造函数)问题是关于获取所有字段和函数,而不仅仅是一个,例如type字段。@pasty来自SO的那篇文章展示了如何迭代类的实例。关于主题问题:你是对的!我使用Mootools创建类,所以我可以使用initialize方法来更改property.type。但正如我所说的,我正在寻找另一种方法来实现这一点使用Mootools来创建类,所以我可以使用initialize方法来更改property.type。但正如我所说,我正在寻找另一种方法来实现这一点。我使用Mootools来创建类,所以我可以使用initialize方法来更改property.type。但正如我所说,我正在寻找另一种方法来实现这一点。我使用Mootools来创建类,所以我可以使用Initialiveize方法来更改property.type。但正如我所说的,我正在寻找另一种方法来实现这一点。