为什么此代码显示错误?

时间:2016-11-04 00:59:47

标签: javascript

第二行显示错误。

"ReferenceError: specialTrick is not defined
    at CoolGuy.showoff (<anonymous>:23:40)
    at <anonymous>:31:5
    at Object.InjectedScript._evaluateOn (<anonymous>:875:140)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:808:34)
    at Object.InjectedScript.evaluate (<anonymous>:664:21)"

class CoolGuy {
    specialTrick = null;

    CoolGuy( trick ) {
        specialTrick = trick
    }

    showOff() {
        console.log( "Here's my trick: ", specialTrick );
    }

}

Joe = new CoolGuy("rope climbing");
Joe.shoeOff();

1 个答案:

答案 0 :(得分:5)

  1. 您应该使用constructor函数(而不是具有相同名称的函数)。
  2. 您无法使用this在类定义中设置成员(在构造函数中设置它们)。
  3. showOff函数中有错字。
  4. 更多信息in the reference

    以下是修复:

    class CoolGuy {
    
        constructor( trick ) {
            this.specialTrick = trick
        }
    
        showOff() {
            console.log( "Here's my trick: ", this.specialTrick );
        }
    }
    
    Joe = new CoolGuy("rope climbing");
    Joe.showOff();