1
function myClass(a,b,c) {
     this.alertMyName=function(){alert(instancename)}

{...}


}

その後

foo = myClass(a,b,c);
boo = myClass(a,b,c);

foo.alertMyName(); //it should alert 'foo'
boo.alertMyName(); //it should alert 'boo'

実際には、このクラスの別のインスタンスによって作成された同じオブジェクトと区別するために、多くの html オブジェクトを作成するクラスで ID のプレフィックスを付ける必要があります。

4

3 に答える 3

8

Stack Overflow で解決策が見つからなかったので、dforge.net の ronaldcs から見つけた解決策を次に示します: http://www.dforge.net/2013/01/27/how-to-get-the-name- javascript 内のクラスのインスタンスの/

myObject = function () {
  this.getName = function () {
    // search through the global object for a name that resolves to this object
    for (var name in window)
      if (window[name] == this)
        return name;
  };
};

やってみて:

var o = new myObject(); 
alert(o.getName()); // alerts "o"
于 2014-04-25T13:34:54.457 に答える
3

パラメータとして取り込むことができます:

function myClass(name, a, b, c) {
   this.alertMyName = function(){ alert(name) }
}

foo = new myClass('foo', a, b, c);

または後で割り当てます。

function myClass(a, b, c) {
   this.setName = function(name) {
       this.name = name;
   }
   this.alertMyName = function(){ 
       alert(this.name)
   }
}

foo = new myClass( a,b,c);
foo.setName('foo');
于 2012-10-19T10:29:02.003 に答える
2

Davidの答えに加えて、javascriptの変数には、プリミティブまたはオブジェクトへの参照のいずれかの値があります。値が参照である場合、それが参照するものは、変数の「名前」が何であるかわかりません。

検討:

var foo = new MyThing();
var bar = foo;

では、何をfoo.alertMyName()返す必要がありますか? あるいは:

(new MyThing()).alertMyName();

インスタンスに名前を付けたい場合は、それらにプロパティを与え、その値を適切なものに設定します。

于 2012-10-19T10:34:27.523 に答える