SampleTime.prototype.getSampleStateBySampleNo是数据解析模块;SampleTime是JS交互逻辑模块;SampleTime.prototype._setSampleNo是关联模块;关联模块传输数据到解析模块是正常的,但是传输到交互模块就没数据了,本来调用存储过程是正常的,代码量有些大,不便之处多多海涵,同事说this的指向有问题,但不知道怎么修改所有代码://JScript文件functionSampleTime(){vartimes=this._rowsData;console.log(times);//计算宽度,总和:vartotals=0;for(vartotal=0;total
2 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
functionSampleTime(){vartimes=this._rowsData;...this._valueDatas.forEach(...}//調用標本信息SampleTime.prototype._setSampleNo=function(nSampleNo){//清除表数据this._tableLogInfo=null;//alert(nSampleNo);SampleTime.prototype.getSampleStateBySampleNo(nSampleNo);//ASampleTime();//B}//交互模塊,柱状图横向纵向时间轴//定义初始值的吧SampleTime.prototype.getSampleStateBySampleNo=function(p){...this.rowsData=[];this._rowsData=[];this._rowsData=...}SampleTime.prototype.getSampleStateBySampleNo(1);//C1.为什么要用prototype来定义方法,直接函数不好么?2.既然要用prototype来访定义方法,那就好好使用JS面向对象的方法问题出在:C处代码调用时的this为SampleTime函数对象的prototype属性对象A处代码调用时的this为SampleTime函数对象的prototype属性对象B处代码调用时的this为全局对象那么也即是所你在C、A处设置的参数,对B处的函数体代码来说完全没有用看下下面代码,你就会明白:functionTEST(){this._p="TEST";console.log("this_p1:"+this._p1);console.log("this_p2:"+this._p2);}TEST.prototype.fun1=function(){this._p="fun1";}TEST.prototype._run_=function(){TEST.prototype.fun1();TEST();}TEST.prototype.fun1=function(){this._p1="fun1";}TEST.prototype.fun2=function(){this._p2="fun2";}TEST.prototype.fun2();TEST.prototype._run_();//this_p1:undefined//this_p2:undefinedconsole.log(TEST.prototype._p1);//fun1console.log(TEST.prototype._p2);//fun2console.log(this._p);//TEST
添加回答
举报
0/150
提交
取消