我是 JS 编程的新手,并试图理解基于原型的继承。下面是我的测试代码,我对行方法“parseParameters”有疑问。
据我所知,当我实例化类 Point 并拧紧以下内容时:
var p = new Point ({x: 1, y: 1});
alert(p.x);
成员“x”首先在 Point 类中搜索,然后在其原型(Shape)中搜索。这样对吗?
并质疑自己:在 Point 类或 Shape(原型)中将在哪里创建成员“x”和“y”?
一句话:我真的应该考虑一下吗?也许这是一个微不足道的问题,无论成员在哪里创建?
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;