Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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 - Fatal编程技术网

从类内部获取对象名称(JavaScript)

从类内部获取对象名称(JavaScript),javascript,Javascript,我有一个类,我希望从类内部将使用该类的对象的名称另存为类变量: var xxx = new MyClass(); // on the constructor this.name should be init to "xxx" 我已经尝试过这种方法: 但是我无法从类构造函数本身获得它的工作。xxx只是一个变量,它包含对内存中对象的引用。如果要给该对象一个name属性,则应将其作为参数传递 var xxx = new MyClass( 'xxx' ); var MyClass = functi

我有一个类,我希望从类内部将使用该类的对象的名称另存为类变量:

var xxx = new MyClass(); // on the constructor this.name should be init to "xxx"
我已经尝试过这种方法:


但是我无法从类构造函数本身获得它的工作。

xxx
只是一个变量,它包含对内存中
对象的引用。如果要给该对象一个name属性,则应将其作为参数传递

var xxx = new MyClass( 'xxx' );

var MyClass = function( name ) {
    this.name = name || undefined;
};
您可以保留对象的散列,以避免每次创建不同的变量:

var myHash = {};

var MyClass = function( name ) {
    if( !name ) throw 'name is required';
    this.name = name;
    myHash[ name ] = this;
    return this;
};
//add static helper
MyClass.create = function( name ) {
    new MyClass( name );
};    

//create a new MyClass
MyClass.create( 'xxx' );

//access it
console.log( myHash.xxx )​;

这里有一个问题:

对象没有名称。对象没有意识到
xxx
变量。由于访问对象的变量名是为了避免将其作为参数传递,因此开始时Im bck,请猜没有其他方法!无论如何谢谢你@JuanCB:如果你有多个变量引用同一个对象呢?或者对象只是数组中的一个元素?它就是不能那样工作。