【发布时间】:2018-01-19 14:12:54
【问题描述】:
我正在使用 JavaScript 中的prototypes(我是 JS 新手)并坚持使用以下 JS 代码的 sn-p:
我创建了两个函数:
功能1
function sample1() {
this.uname = "Andrew";
}
功能2
function sample2() {
this.age = 21;
}
我继承sample2到sample1的属性如下:
sample1.prototype = sample2;
到目前为止,一切正常,就像我可以看到 sample1 以 sample2 为原型一样。但是,问题在于使用包含sample2 属性的sample1 创建一个对象。
let test = new sample1;
现在,尝试访问 sample1 的属性会得到正确的输出。
test.uname;
但是,尝试访问 age 会输出为 undefined。
问题:
如何使用test 对象访问age 属性?
注意:以上是使用 Chrome 开发者工具 - 控制台尝试的
谢谢。
【问题讨论】:
-
你需要调用
sample2作为它的一个函数。继承它没有任何意义。sample1.prototype = new sample2会工作 -
只是一个约定,但可以避免很多混乱。如果要像类一样使用函数,则将函数的第一个字符大写.. 例如..
Sample1而不是sample1.. -
@JonasW。不完全 - 您需要将 sample2 的原型链与 sample1 的原型链相关联。
标签: javascript json ecmascript-6 ecmascript-5 prototype-chain