javascript - 返回值未定义

标签 javascript jquery cordova jquery-mobile

我正在尝试使用phonegap 实现震动检测,不幸的是我遇到了返回未定义值的问题。

这是我的代码片段:

function acc() {
var accOpt = { frequency: 1000 };   
watchPot = navigator.accelerometer.watchAcceleration(win, fail, accOpt);    
}

function win (acceleration) {

    var tiltLR = 0;
    var tiltFB = 0;

    var facingUp = -1;
    if (acceleration.z > 0) {
      facingUp = +1;
    }

    tiltLR = Math.round(((acceleration.x) / 9.81) * -90);
    tiltFB = Math.round(((acceleration.y + 9.81) / 9.81) * 90 * facingUp);

      previousReading = {
        x   :   null,
        y   :   null,
        z   :   null,
        lr  :   null,
        fb  :   null            
      };

      var changes = {};

      if (previousReading.x !== null) {
          changes.x = Math.abs(previousReading.x-acceleration.x);
          changes.y = Math.abs(previousReading.y-acceleration.y);
          changes.z = Math.abs(previousReading.z-acceleration.z);
          changes.lr = Math.abs(previousReading.lr-tiltLR);
          changes.fb = Math.abs(previousReading.fb-tiltFB);
      }

      previousReading = {
          x: acceleration.x,
          y: acceleration.y,
          z: acceleration.z,
          lr: tiltLR,
          fb: tiltFB
      };


    console.log('previousReading x: ' + previousReading.x + ' previousReading y: ' + previousReading.y + ' previousReading z: ' + previousReading.z+ ' previousReading lr: ' + tiltLR + ' previousReading fb: ' + tiltFB);

    console.log('changes x: ' + changes.x  + ' changes y: ' + changes.y + ' changes z: ' + changes.z + ' changes lr: ' + changes.lr + ' changes fb: ' + changes.fb);

    console.log(acceleration.x + ' ' + acceleration.y + ' ' + acceleration.z);

 }

基本上,加速度 x、y、z 的值以及先前读数的值都已正确记录在控制台中。

然而,问题在于changes.x、changes.y和changes.z的值,由于某种原因它们都返回未定义。

我还尝试检查 typeof(changes.x),它也返回未定义。

最佳答案

根据您提供的代码,未设置 changes.x、changes.ychanges.z 因为 if (previousReading.x != = null) { 将计算为 false,因为 previousReading.x 在此明确设置为 null:

 previousReading = {
    x   :   null,
    y   :   null,
    z   :   null,
    lr  :   null,
    fb  :   null            
  };

关于javascript - 返回值未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14100521/

相关文章:

javascript - 在 React 中连接变量和字符串

javascript - mongoose find({}) 不触发回调

javascript - Jquery 与 Javascript : getting css style object shows different result

javascript - 添加新页面后无法设置未定义的属性 'login'?

android - Android 应用程序的 jQuery 移动弹出透明紫色框问题

javascript - 使用嵌套的 .each() 函数存储数据会导致复制值

javascript - 访问 JSON 子项时出现问题

javascript - 如何在 Kendo Grid 中显示二维码?

javascript - 当函数执行 Jquery 时做一些事情

reactjs - Firebase 动态链接不适用于带电容器的 ios