为什么原型函数不能读取原型属性?

时间:2016-02-28 16:02:17

标签: javascript function prototype

我有这个代码,它返回一个未捕获的ReferenceError:未定义年份。

funcyear

为什么这不能起作用,{{1}}函数不应该位于原型中,那么年份是否可以访问?

1 个答案:

答案 0 :(得分:3)

因为只有year会引用变量(或函数),而不是属性 要引用属性,您必须为对象命名,此属性将附加到。

Car.prototype.funcyear = function() {
    console.log(this.year);
};

注意:

function Car(color, drivetrain) {
    this.color = color;
    this.drivetrain = drivetrain;
    this.stats = function(){
        //this part is "dangerous", because color and drivetrain reference the local variables 
        //in this surrouunding function-call, NOT the properties of this instance
        //so you might change the properties, but you don't see any effect.
        console.log(color + " " + drivetrain);
    };
}