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

Getting Object Name from inside the Class (JavaScript)

本文关键字:JavaScript 取对象 内部 获取      更新时间:2023-09-26

我有一个类,我想从类内部使用类将对象的名称保存为类变量

var xxx = new MyClass(); // on the constructor this.name should be init to "xxx"

我已经尝试过这种方法:

如何获取类对象';s的名称作为Javascript中的字符串?

但我无法从类构造函数本身使其工作。

xxx只是一个变量,在内存中引用Object。如果您想给该对象一个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 )​;

这是一把小提琴:http://jsfiddle.net/x9uCe/