myperson
コードでのインスタンスを作成していません。
あなたが言ったように、関数はオブジェクトです。はい、関数はオブジェクトであり、プロパティもあります。myperson.name
あなたが実際に関数の名前フィールドにアクセスしていると言っているとき。
これは関数であり、 function という名前であるため、関数の名前は、関数に対して宣言したmypersonであり、これは Javascript エンジンによって処理されます。
また、関数をコンストラクターとして呼び出したり、オブジェクトにバインドしたりしていないため、関数内でオブジェクトをthis
指します。window
したがって、関数を呼び出すだけではmyperson.name
属性は設定されません。new
演算子 likenew myperson
を使用してオブジェクトを作成する必要があります。そのオブジェクトには、アクセスするプロパティ「name」があります。
function myperson() {
this.name= "Bruno";
this.personAbility = function(){document.write(1+1);};
}
var per = new myperson();
document.write(per.otherName);
//call the personAbility method like below
per.personAbility();
この使い方の詳細。