私はJSプログラミングが初めてで、プロトタイプベースの継承を理解しようとしています。以下は私のテストコードで、行メソッド「parseParameters」について質問があります。
私が知っているように、クラス Point をインスタンス化して次のように絞るとき:
var p = new Point ({x: 1, y: 1});
alert(p.x);
メンバー 'x' は最初に Point クラスで検索され、次にそのプロトタイプ (Shape) で検索されました。そうですか?
そして、質問自体: メンバー 'x' と 'y' はどこに作成されますか? Point クラスまたは Shape (プロトタイプ) で?
1 つのコメント: 実際に考えるべきですか? 多分それはごくわずかな質問であり、メンバーがどこで作成したかは問題ではありませんか?
var Shape = function () {}
Shape.prototype = {
getParameter: function (params, name) {
return params !== null && params !== undefined
? params[name]
: 0;
},
parseParameters: function(params, names) {
if (params === null || params === undefined) {
return;
}
for(var i = 0; i < names.length; i++) {
this[names[i]] = params[names[i]];
}
}
}
var Point = function (params) {
this.parseParameters(params, ['x', 'y'])
}
Point.prototype = new Shape;