Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取Javascript类字段和函数_Javascript_Class_Oop_Object - Fatal编程技术网

如何获取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

是否有任何方法可以从JavaScript类中获取函数和字段,而无需初始化该类的对象

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。但正如我所说的,我正在寻找另一种方法来实现这一点。