Javascript中的原型继承

时间:2014-03-15 11:24:18

标签: javascript object javascript-objects prototypal-inheritance

以下是我的Javascript对象:

var calc = {
    title : 'Calculator',
    plus : function( a, b ) {
        return (
           console.log(this),    // calc
           console.log(arguments), // [ 3, 5 ]
           console.log(a+b), // 8
           console.log(this.title) // Calculator
        )
    }
};

我正试图通过以下方式访问此对象calc的原型:

calc.prototype.getNum = function( numStr ) {
  return isNaN(parseInt(numStr)) ? 'Not a valid number!' : parseInt(numStr);
};

但每当我执行它时,它都会一直给出以下错误!

  

TypeError:无法设置未定义的属性'getNum'

有谁能告诉我这里我做错了什么?

2 个答案:

答案 0 :(得分:0)

prototype是函数的属性。它不适用于对象文字。因此,您可能希望将calc转换为函数,例如

function calc() {
    this.title = 'Calculator';
}

calc.prototype.plus = function( a, b ) {
  console.log(this);
  console.log(arguments);
  console.log(a+b);
  console.log(this.title);
}

现在,您应该可以将getNum添加到calc的原型中。

答案 1 :(得分:-1)

使用calc.constructor.prototype