在javascript中访问变量显示原型模式

时间:2018-05-25 02:27:15

标签: javascript

var tool = function (bID, $element) {
    this.bID = bID || 0;
    this.$element = $element || false;
    this.element = $element[0] || false;
};

tool.prototype = function () {

    // if this.bID == 'x' && this.$element ? ...

}();

如何访问原型函数中最初设置的变量?

1 个答案:

答案 0 :(得分:0)

var tool = function (bID) {
    this.bID = bID || 0;
};

let testTool = new tool(5);

tool.prototype.logging = function () {
    console.log(this.bID)
};

testTool.logging();

tool.prototype是工具的所有属性/属性的容器,换句话说,你不能做你正在做的事情

tool.prototype = function () {

    // if this.bID == 'x' && this.$element ? ...

}();

而是将函数表达式分配给变量,在我的情况下logging,然后使用您创建的对象调用它,否则如果没有创建对象,您认为this是什么?

<强>更新

var tool = function (bID = 'x') {
    this.bID = bID || 0;
};

//console.log(tool.prototype.logging());//TypeError: tool.prototype.logging is not a function


let somefunc = function(toolParam) { 
  if(toolParam.bID === 'x'){
    tool.prototype.logging = function () {
      return console.log(this.bID)
    };
  }
}

let testTool = new tool();

    somefunc(testTool);

console.log(tool.prototype.logging)
//ƒ () {
//        return console.log(this.bID);
//    }