首页 新闻 会员 周边 捐助

有没有什么办法不给函数传参的情况下获取到值啊?

0
[待解决问题]
var one = function(h){
        two()
    }
    var two = function(){
        
    }
    one('hello')

怎么在two函数不传参的情况下,在two函数体内获得h的值啊?

深蓝色梦想的主页 深蓝色梦想 | 初学一级 | 园豆:6
提问于:2012-09-18 00:16
< >
分享
所有回答(9)
0

one two都在全局的生命期中,估计是用全局变量吧

2012 | 园豆:21645 (高人七级) | 2012-09-18 08:20
1

方法1:将变量h定义为全局变量。

<script type="text/javascript">

  var h=123;

  var two=function(){

    h++;//在two()函数内部拿到了h值

}

</script>

 

 

方法2:用页面标签储存h的值,然后在two函数内部读取该值。

用一个隐藏标签储存h

在two函数内部读取h的值,如:

页面中添加一个隐藏标签<input id="test" type="hidden" />

<script type="text/javascript">

$(function(){

  $("#test").attr("aaa",h);//将h的值存在id为“test”的标签的属性aaa中。

});

  var two=function(){

  var h=$("#test").attr("aaa");//读取id为"test"的标签的属性aaa的值。

  ... ...

};

</script>

 

son409 | 园豆:190 (初学一级) | 2012-09-18 08:40
0

全局,这样也就不用传h了

Qlin | 园豆:2403 (老鸟四级) | 2012-09-18 08:53
0

静态方法底下

jason2013 | 园豆:1998 (小虾三级) | 2012-09-18 08:54
0

定义一个全局的变量吧。

chenping2008 | 园豆:9836 (大侠五级) | 2012-09-18 09:17
0

全局变量是比较好的一种方式

Pretty_Cool | 园豆:157 (初学一级) | 2012-09-18 14:11
0

不传参的话,只能用闭包。把two函数定义到one函数内。

三剑客 | 园豆:92 (初学一级) | 2012-09-21 13:26
0

可以详细的描述下你这样做的目的么?

acjialiren | 园豆:191 (初学一级) | 2012-09-23 16:56
function Obj (){
            var _h;
            this.one = function (h){
                _h = h;
                this.two();
            }
            this.two = function ()
            {
                alert(_h);
            }
        }
        var obj = new Obj();
        obj.one(1);
支持(0) 反对(0) acjialiren | 园豆:191 (初学一级) | 2012-09-23 17:06

上面的方法可以隐藏并且保留h的值,如果不是你想要的效果,仔细回复下目的

支持(0) 反对(0) acjialiren | 园豆:191 (初学一级) | 2012-09-23 17:07
0

方式1:在one函数的外面定义var h。

方式2:定义one.h

乐享程序员 | 园豆:930 (小虾三级) | 2014-04-16 22:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册