从类内部获取对象名称(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:如果你有多个变量引用同一个对象呢?或者对象只是数组中的一个元素?它就是不能那样工作。