JSをよく理解しようとすると、いくつかの説明があります。名前が外部に表示されていない理由は?、我々は(customer.name)その未定義にログインしたとき、我々は機能に括弧を初期化し、自己を削除し、(に変数の宣言を変更しかし、もし私たちは次のような方法JavaScript自己呼び出し関数のプロパティ
var customer = function(){
var name = "Contoso";
return {
getName : function(){
return this.name;
},
setName : function(newName){
this.name = newName;
}
}
}();
があるとしましょうthis.name)&再びログを記録すると値を見ることができます。私はここで何が欠けているのですか?
2番目の例は、 'this'に' name'を定義して別のオブジェクトを 'return'するので動作しません。この関数をコンストラクタとして使用する場合は、 'this.getName = ...'または 'customer.prototype.getName = ...'を定義し、 'return'を削除する必要があります。そして、あなたは 'new'キーワードで関数を呼び出さなければなりません。現時点では、 'this'はグローバルオブジェクトを指し、' this.name'は 'window'に追加されます – Thomas
ありがとうございます@トーマス。あなたが正しいです。 2番目の例を削除しました – Morishiri