jquery - javascript 变量问题请教
大家讲道理
大家讲道理 2017-04-11 10:35:53
[JavaScript讨论组]

js中的代码如下:

$('#submit').click(function postPayInfo() {
        orderID = $('#payQrcode').attr('value');
        console.log(orderID);   //位置A
        console.log(createLink('weipay', 'finishpay',orderID));  //位置B
        paystatus = $.ajax({url:createLink('weipay', 'finishpay',orderID),async:false});
        alert(paystatus);
    });

console.log 结果:

其中第二行是createLink的返回值。

请问一下,为什么位置A可以打印出orderID, 然而位置B的orderID却是undefine. 我记得js中函数内部是可以访问函数外部的变量的呢。 这里 位置B内部要怎么样才能访问到orderID呢? 感觉和回调函数的变量作用域有关系。

望不吝赐教,多谢!

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(5)
黄舟

可以在你createLink函数里console一下,看看是否先执行。

黄舟

createLink('weipay', 'finishpay',orderID)这个有返回值吗?

阿神

不知道你的外部代码怎么写的,但是这个参数肯定能获取到的。 你可在 createLink 函数里面输出下,看下有没有这个值。并且,你这个函数体要有返回值,即return,才能console出来东西啊。

迷茫

js中函数内部是可以访问函数外部的变量

在我的理解上,访问的需要是全局变量或者是外部的函数return出来的

createLink这个函数从你提供的js代码中无法看出是什么

位置B内部要怎么样才能访问到orderID呢

这个问题是传参问题吧,你直接在createLink这个函数console.log下orderId这个参数,看有没有传进去

大家讲道理

问题解决了。 是createlink函数内部对变量的格式进行了限制,这个变量要用 a=1 这中表达式风格的字符串。多谢各位的回答

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

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