o200888512
o200888512
采纳率0%
2019-09-12 18:16

一个js文件怎么获取另一个js文件里更新后的变量值?

我有两个js文件,a.js 和 b.js,我要怎么在a.js里面获取到b.js里的一个数组对象addPic更新后的数据?
搜了很多说是在网页引入时把 b.js放在a.js的前面,但试过了没用,只能获取到数组对象的原始数据,新增加的就获取不到

var addPic = [],
    picUrl = [
        {url: "../img/photoWall/child1.jpg"},
        {url: "../img/photoWall/child1.jpg"},
        {url: "../img/photoWall/child1.jpg"},
    ];

addPic.push(
    {
        text: "好一朵祖国的娇花",
        url: picUrl
    }
);

这是b.js里的数组对象,是一个全局的。我两个js文件里都有一个输出语句输出addPic数组的长度,我新增加数据后,在b.js里的输出语句里数组长度是我新增数据后的总长度,但在a.js里长度就为1,内容就只有原始数据,新增的没有
大佬些,咋整啊?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • jslang 天际的海浪 2年前

    你跳转页面了,新的页面中当然就获取不到上个页面中动态更改的内容了。
    你要知道,前端浏览器中每个页面中的js代码环境都是完全独立的,当页面跳转时,上个页面中的所有内容(包括js变量和函数)都会全部销毁,跳转到新的页面后再以一个全新的环境重新载入js代码执行。

    想要跨页面传递数据可以看看 https://www.jianshu.com/p/5b81672352cd

    点赞 1 评论 复制链接分享
  • u013551590 洋葱剑士MAX 2年前

    请补充一下描述:在b.js中什么时候新增?在a.js中什么时候取的长度?
    如果b.js代码只有你放出的这些,这个时候在a.js中取addPic的length,结果当然是1;

    解决思路:确保在b.js对数组操作完成之后再从a.js中取addPic的length

    点赞 评论 复制链接分享
  • huanglin6 Joker-Full-stack 1月前

    在b.js的addPic.push()后加上window.addPic =addPic;然后a.js在需要addPic的地方用window.addPic或者用export

    点赞 评论 复制链接分享

为你推荐