我有一个类,我想从类内部使用该类将对象的名称保存为类变量:
var xxx = new MyClass(); // on the constructor this.name should be init to "xxx"
我已经尝试过这种方法:
但我无法从类构造函数本身获得它。
我有一个类,我想从类内部使用该类将对象的名称保存为类变量:
var xxx = new MyClass(); // on the constructor this.name should be init to "xxx"
我已经尝试过这种方法:
但我无法从类构造函数本身获得它。
xxx
只是一个持有对Object
内存中的引用的变量。如果您想为该对象提供名称属性,则应将其作为参数传递。
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/