PhoneGap App对象函数不执行

时间:2015-04-17 00:14:15

标签: javascript cordova windows-phone-8

我的WP8.1 Phonegap应用程序中有一个非常有趣的问题。当我使用功能

document.addEventListener("deviceready",onDeviceReady,false);

function onDeviceReady(){
  **obj.alertFunction();**
}

var obj = {
   alertFunction: function(){alert('HelloWorld');}
}    

什么都不会发生,但当我只使用 alertFunction();其中alertFunction是

function alertFunction(){
  alert('Hello');
}
一切都好。在Android上一切正常,也在Ripple Simulator上。仅在Windows Phone设备上我有这个问题。 THX答案:)

1 个答案:

答案 0 :(得分:0)

可能是因为您在第一种情况下使用function表达式,而在第二种情况下使用function语句用于警报。 Function表达式以程序方式执行。尝试更改执行顺序:

function onDeviceReady(){
  **obj.alertFunction();**
}

var obj = {
   alertFunction: function(){alert('HelloWorld');}
}   

document.addEventListener("deviceready",onDeviceReady,false);

这是一个说明差异的片段:

  1. OnDeviceReady()在顶部执行:
  2. 
    
    onDeviceReady();
    
    function onDeviceReady(){
      obj.alertFunction();
    }
    
    var obj = {
       alertFunction: function(){alert('HelloWorld');}
    }
    
    Nothing happens
    
    
    

    1. OnDeviceReady()在底部执行:
    2. 
      
      function onDeviceReady(){
        obj.alertFunction();
      }
      
      var obj = {
         alertFunction: function(){alert('HelloWorld');}
      }    
      
      onDeviceReady();
      
      Alert is triggered
      
      
      

      如果更改执行不起作用,则可能需要将代码重写为function语句。

      更多阅读: