javascript - 多层JSON数据为什么不能访问
黄舟
黄舟 2017-04-11 11:48:12
[JavaScript讨论组]

我在JS中声明了一个json数据,然后里面又声明了子json 类型数据,想在里面绑定父级的数据,但是绑定失败 是什么原因呢?? 直接看图,

var json = {

type: 2,
scity_3: '',
scity: '杭州',
ecity: '',
ecity_3: '',
date_go: '',
date_back: '',
code_3_go_json: {
    url: 'http://118.178.225.32/hmp_website/yiplain/getairportlist.json',
    parameters: {
        'keywords': encodeURI(json.scity)
    },
    success: function (data) {
        console.log(this);
        console.log(data);
    }
},

}

红色箭头标注部分每次直接显示undefinde ,为什么呢,是因为只能在函数里面进行数据绑定么?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
迷茫

正在声明的对象调用本身结果是undefined

var json = {
    type: 2,
    scity_3: '',
    scity: '杭州',
    ecity: '',
    ecity_3: '',
    date_go: '',
    date_back: '',
    code_3_go_json: {
        url: 'http://118.178.225.32/hmp_website/yiplain/getairportlist.json',

    success: function (data) {
        console.log(this);
        console.log(data);
    }
    }
}
    json.parameters={
        'keywords': encodeURI(json.scity)
    }
怪我咯
var a = {
    b:console.log(a)
    };

过程:

var a;//undefined
创建{b:console.log(a)};
将其赋值给a;

能理解了吗。

高洛峰
  1. 首先这不是json,这是使用字面量声明方式声明的对象。json的键名必须用双引号包裹,而且不允许出现function

  2. 对象里引用自身,一般用this指针,但是你这里居然是嵌套的,所以建议你直接把这段拿出去存变量就好了(也就甭改this了)。

  3. 变量命名的时候,尽量避开潜在的系统保留关键字(当然你要把保留关键字列表背下来了请忽略此条)。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号