JS Lint - 严格违规 - 在构造函数对象中定义函数

时间:2014-01-03 11:33:40

标签: javascript oop this jslint

我是OOP JavaScript新手,当我在JSLint中遇到以下严重违规行为时,我只是玩游戏

function HeaderNav(){
  this.activateMobile = function () {
     alert('activateMobile');
  }
}

严格违规行为

this.activateMobile = function () {

我需要使用activateMobile()方法来获取“this”。

时它可以工作
var navigation = new HeaderNav();
navigation.activateMobile();

谢谢

1 个答案:

答案 0 :(得分:2)

如果你这样做

this.activateMobile = function () {};

该函数不是原型的一部分,这意味着HeaderNav的子类不会获得此函数(除非您执行显式的 super 调用)。直接在this上设置属性只会为该实例

设置该属性

要向原型添加函数,请执行以下操作:

function HeaderNav() {} 
HeaderNav.prototype.activateMobile = function () {
  alert('activateMobile');
};