new
の動作は、下の2つの例でどのように異なっていますか?私は、2番目の例は、変数とannoymous funcitonを置き換えているが、2番目の関数/クラス "Person"は実際に呼び出されていることがわかります。それが呼び出されているかどうかは違いますか?私はそれを呼び出しなくても試しましたが、それはまだ働いていました。新しいことが実際に関数を呼び出し、this
をインスタンス変数に割り当てるように設定していると私は考えました。重要ではありません:それは変数に割り当てられているかどうかは"new"はどのようにJavaScriptのクラスで動作しますか?
var person = new function() {
this.setName = function(name) {
this.name = name;
}
this.sayHi = function() {
return "Hi, my name is " + this.name;
}
}
person.setName("Rafael");
console.log(person.sayHi()); // Hi, my name is Rafael
var Person = function() {
this.setName = function(name) {
this.name = name;
}
this.sayHi = function() {
return "Hi, my name is " + this.name;
}
}
var personTwo = new Person()
personTwo.setName("Rafael");
console.log(personTwo.sayHi()); // Hi, my name is Rafael
はいえ(JavaScriptでは授業はありません*クラス*構文があります)。どのようにして最初の例で2番目のインスタンスを作成しますか? – RobG
関連する並べ替え:http://stackoverflow.com/questions/6750880/how-does-the-new-operator-work-in-javascript、および、http://stackoverflow.com/questions/1646698/what- new-keyword-in-javascript – PicoCreator