JS和YUI中的这些构造是什么?

时间:2014-08-10 02:47:26

标签: javascript php yui yui2

我从here获得了以下代码,同时在单独的.js文件中搜索从YUI2 JavaScript函数访问PHP变量的某些方法。

查看JavaScript,第一个语句创建namespace ,第二个语句启动函数定义(名为YAHOO.MyApp)。然后var currencyRates;var userInfo;创建两个变量。

  1. 那么下一个return {...}构造是什么?

  2. 然后在其中,function(newRates) { currencyRates = newRates; }     看起来像一个函数(特别是因为PHP可能会调用它     将数组$currency rates传递给它?但总的来说是什么     initCurrencyRates: function(newRates) { currencyRates = newRates; }

    那里:是什么(就像=一样)?

  3. 那么();到底怎么样?什么是 something=function(){...}();构造?

  4. 有人可以解释控制流程吗?首先执行什么,然后执行什么,然后执行什么操作?

    JavaScript的:

    YAHOO.namespace('MyApp');
    
        YAHOO.MyApp = function() {
    
        var currencyRates;
        var userInfo;
    
        /*
        here a lot of code with event listeners and dom manipulations which uses currencyRates and userInfo variables
        */
    
        return {
            initCurrencyRates: function(newRates) { currencyRates = newRates; },
            initUserInfo: function(newUserInfo) { userInfo = newUserInfo; },
        }
    
    }();
    

    PHP:

    <?php
    $currencyRates = array('EUR' : 1.3245, 'GBP': 1.4322, 'RUB': 0.02334); //actually it comes from database
    print '<script>YAHOO.MyApp.initCurrencyRates(' . json_encode($currencyRates) . ')</script>';
    
    $userInfo = array('Name' => 'Jhon', 'ID' => 10); //actually it comes from database
    print '<script>YAHOO.MyApp.initUserInfo(' . json_encode($userInfo) . ')</script>';
    
    ?>
    

1 个答案:

答案 0 :(得分:1)

您正在查看Javascript对象文字。它们有点类似于PHP哈希文字。这个Javascript代码

var foo = {
    x: "hello",
    y: "world"
}

有点类似于这个PHP代码:

$foo = array(
    "x" => "Hello",
    "y" => "World"
)