bugfix> 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 件
  • 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);
    //    }
    
    

あなたの答え