0
は、次のコードを考える:プロトタイプ関数は 'this'を使用するときにどのような点を指摘しますか?
var User = function(name) {
this.name = name;
};
User.prototype.sayHello = function() {
console.log('Hi my name is ' + this.name + '.');
};
var user1 = new User('Bob');
user1.sayHello();
は、私がこれまでに学んだこと、それは字句に座っているオブジェクトで、グローバルオブジェクトで機能ステートメントポイントで使用される、および方法で使用する場合this
キーワード
また、new
キーワードは空のオブジェクトを作成し、コンストラクタを呼び出してその新しいオブジェクトを指し示すことがわかっています。
しかし、私が理解していないのは、user1がsayHello
の機能を所有していないため、 はプロトタイプチェーンになります。 しかし、プロトタイプの関数は、this.name
の参照先をどのように知っていますか?
コンソールの出力は次のようになりますのでHi my name is Bob.
に解決おそらくhttps://developer.mozilla.org/en/docs/Web/JavaScript/Inheritance_and_the_prototype_chainはあなたに –
新しいKEYWOを教育します新しいオブジェクトを作成するだけでなく、プロトタイプをその新しいオブジェクトに '自動的に'バインドするので、user1自身はそのメソッドを定義しませんでしたが、user1のメソッドです。 user1インスタンスのプロトタイプチェーンの最初のステップはUser.prototypeで、プロトタイプメソッドは呼び出されたインスタンスをこの値として使用します。 – Shilly