调用函数并运行它

时间:2012-12-17 17:00:35

标签: php javascript jquery

我是对象和OOP的新手。我真的不知道如何解释它,但我会尝试。

所以我试图通过JS阅读JSON,JSON是从PHP传递的。如果所有信息都在同一个html页面上,这将很容易,但我正在尝试一些我也是新手。

所以让我展示我的代码......

首先是app.js中的JS

   var Donors = function(){
    var api = this.list;

    $(document).ready(function(){
      $.getJSON(api, function(data){
        var donorObj = data.payload;
        $.each(donorObj, function(i, donor){
          //console.log(donor.ign);
        });
      });
    });

   }

想要这部分要做的事情是从JSON我读取它和console.log读取文件准备好时的每个名称(或donor.ign)。

在html页面上,或header.php

<script>
$(function(){
    var list = <?php cbProxy(); ?>;
    var Dons = new Donors();
    Dons.list = list;
    });
</script>

列表中的数据是以下JSON。您已经知道其余的内容,它只是将JSON传递给Donors()函数。

JSON示例:

{
"code": 0,
"payload": [
{
"time": 1349661897,
"packages": [
"49381"
],
"ign": "Notch",
"price": "15.99",
"currency": "USD"
}

我习惯于在同一页面或文件上创建函数并调用它,这是我第一次使用这种函数。如何使用我发送的数据运行该函数,使其console.log()每个名称?

我确实尝试了

console.log(Donors());

仅记录了undefined

新代码:

app.js

   var Donors = function(api){

    this.list = api;

    $(document).ready(function(){
      $.getJSON(this.list, function(data){
        var donorObj = data.payload;
        $.each(donorObj, function(i, donor){
          console.log(donor.ign);
        });
      });
    });

   }

index.php /内联脚本

<script>
$(function(){
    var list = <?php cbProxy(); ?>;
    var dons = new Donors(list);
});
</script>

2 个答案:

答案 0 :(得分:1)

如果你执行

var Dons = new Donors();
Dons.list = list;

然后在向list属性分配内容之前调用构造函数。这意味着您的api变量将为undefined,只要您没有在Donors继承的原型对象上定义一个变量。而是将列表作为参数传递给构造函数:

function Donors(api) {
    this.list = api;
    // do something
}
var dons = new Donors(list);

答案 1 :(得分:0)

我认为应该是这样的:

$.getJSON(api, function(data){
    $.each(data.payload, function(i, donor){
       console.log(donor.ign);
    });
});

试一试,看看是否有效。