【问题标题】:javascript: how do I handover an argument to a private function within an object?javascript:如何将参数移交给对象内的私有函数?
【发布时间】:2019-04-26 23:20:53
【问题描述】:

如何在对象定义中定义函数,通过从字符串中提取信息从字符串创建对象?

刺痛看起来像这样:

var theString = "一些文本一些更多文本甚至更多文本";

然后我创建一个对象

someObject = new Reportlet(theString);

从此代码:

* 函数 Reportlet(myString){

var extractData (separator) = function(){
     var dummy;
     var a;
     var txt;
     if(myString.indexOf(separator) > -1){
        dummy = myString.split(separator);
        dummy = dummy[1];
        a = dummy.indexOf("<");
        if(a > 0){
          txt = dummy.substr(0,a);
        }
        else{
          txt = dummy;
        }
      }
      else{
          txt = "";
      }
      return(txt);  
}
this.abbrevText = extractData("<A>");
this.optText = extractData("<S>");
this.fullText = extractData("<L>");
this.impression = extractData("<I>");
this.keywords = extractData("<X>");

} *

问题是,如何将参数“分隔符”移交给对象内的私有函数“extractData”?

谢谢 霍尔克斯

【问题讨论】:

    标签: javascript function oop arguments private


    【解决方案1】:

    你需要这样做:

    function Reportlet(myString){
    
    var extractData = function(separator) { // just do this
         var dummy;
         var a;
         var txt;
         if(myString.indexOf(separator) > -1){
            dummy = myString.split(separator);
            dummy = dummy[1];
            a = dummy.indexOf("<");
            if(a > 0){
              txt = dummy.substr(0,a);
            }
            else{
              txt = dummy;
            }
          }
          else{
              txt = "";
          }
          return(txt);  
    }
    this.abbrevText = extractData("<A>");
    this.optText = extractData("<S>");
    this.fullText = extractData("<L>");
    this.impression = extractData("<I>");
    this.keywords = extractData("<X>");
    }
    

    但请记住,“extractData”中的“this”引用与“Reportlet”不同,换句话说,“extractData”中的“this”引用不是“Reportlet”实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 2013-10-06
      • 2013-05-29
      • 2021-04-15
      • 2018-03-15
      • 1970-01-01
      相关资源
      最近更新 更多