Javascript 我无法使用变量名访问对象函数?

Javascript 我无法使用变量名访问对象函数?,javascript,jquery,function,object,Javascript,Jquery,Function,Object,我是Javascript的初学者,尝试使用变量名访问对象函数,但它给出了一些错误。如果有人能纠正我的错误,这只是一个伪代码。。最好的方法是什么 <html> <head> <title>Pub/Sub Test</title> </head> <body> <div id="wrap1" data-components="tooltip">

我是Javascript的初学者,尝试使用变量名访问对象函数,但它给出了一些错误。如果有人能纠正我的错误,这只是一个伪代码。。最好的方法是什么

<html>
    <head>  
        <title>Pub/Sub Test</title> 
    </head>
    <body>  
        <div id="wrap1" data-components="tooltip">
            <p><h1>pubsubz Test</h1>
            <p>Run with Firebug or a console simulator open.</p></p>
        </div>
        <div id="wrap2" data-components="tooltip">
            <p><h1>pubsubz Test</h1>
            <p>Run with Firebug or a console simulator open.</p></p>
        </div>
        <div id="wrap3" data-components="tooltip">
            <p><h1>pubsubz Test</h1>
            <p>Run with Firebug or a console simulator open.</p></p>
        </div>

        <script type="text/javascript" src="jquery-1.6.4.min.js"></script>

        <script>
            var r=r||{};
            (function(tooltip,$,w,d,undefined){
                var pos,
                attr="data-options",
                defaultSetting = {
                    horizontal : true,
                    vertical : "above"
                };
                tooltip.init = function($el){
                    alert("hello");
                }
            })(r.tooltip = r.tooltip || {},jQuery,window,document);

            (function(r,$){
                var els = {
                    $body : $('body')
                };
                // identify modules
                var $modules = els.$body.find('[data-components]');
                // create queue from modules
                $modules.each(function(i,v){
                    var $module=$(this).data('components'); //value = tooltip
                    //want to excute r.tooltip.init() function but there is some error - $module contain value tooltip
                    r.$module.init();
                });
            })(r=r||{},jQuery);
        </script>
    </body>
</html>

发布/订阅测试
普氏试验
在Firebug或控制台模拟器打开的情况下运行

普氏试验 在Firebug或控制台模拟器打开的情况下运行

普氏试验 在Firebug或控制台模拟器打开的情况下运行

var r=r |{}; (功能(工具提示,$,w,d,未定义){ var pos, attr=“数据选项”, 默认设置={ 对,, 垂直:“上方” }; tooltip.init=函数($el){ 警惕(“你好”); } })(r.tooltip=r.tooltip | |{},jQuery,窗口,文档); (函数(r,$){ 变量els={ $body:$('body') }; //识别模块 var$modules=els.$body.find(“[data components]”); //从模块创建队列 $modules.每个(功能(i、v){ var$module=$(this).data('components');//value=工具提示 //要执行r.tooltip.init()函数,但出现一些错误-$module contain value tooltip r、 $module.init(); }); })(r=r |{},jQuery);
当您想要访问变量中包含其名称的属性时,正确的形式是

r[$module].init();

当您想访问变量中名称为的属性时,正确的形式是

r[$module].init();

动态值的可能重复或对于动态值,您无法使用点符号访问属性,请按照Jon所述访问属性。对于动态值的可能重复或对于动态值,您无法使用点符号访问属性,请按照Jon所述访问属性。