实际情况是这样这个lechart.js里面定义了三个变量D3,D1,D0,现在我在另一个html页面引入这个js,然后在该页面下调用lechart.js里面定义过的变量D3,D1,D0,,但是因为作用域的问题肯定就拿不到了会报错,请问怎么解决这个问题呢???怎么才能拿到这个变量?



补充:我现在修改js里面吧var去掉让局部变量变为全局变量 可这样还是not defined,求解???

这样吧数据传入到方法里面是可以正常运行的,拿出来就不行了,我也知道是D3没有找到,但是该怎么来写呢??求各位大神指点
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个不是应该用闭包或是创建一个新的对象么?
D3 D1 D0 算是
basicDataChart的配置,使用闭包或是对象都可以呀!简单写个闭包的吧
你好歹代码帖全点呀
1.html文件里,你是先用了D3 D1 D0 再调的方法,但是这三个变量的赋值是写在方法里面的,还没有调用方法,也就还没有执行D3 = ..... 的语句,也就是没有定义全局变量,自然会是not defined,js是顺序执行的。举个例子。
对比一下这三段代码的区别。
2.把给value1 value2的赋值写在js方法里面,调用函数的时候自然就给它赋值了。
可以多看看js变量作用域的问题。js变量以及其作用域详解
我自己试验所得,不知道解释的是不是正确。欢迎大神指摘。
跨页面前端用cookie或者html5里的local Storage