js有没有类似c里面的宏的东西,比如
<script type="text/javascript">document.write(X)</script>
<script type="text/javascript">document.write(Y)</script>
<script type="text/javascript">document.write(Z)</script>
这3句变化点就是X Y J 有没有宏来代替其他的<script type="text/javascript">document.write(。)</script>

解决方案 »

  1.   

    就是类似#define  _SCRIPT_(VAR)  <script type="text/javascript">document.write(VAR)</script>使用的时候 
    _SCRIPT_(X)
    _SCRIPT_(Y)
    _SCRIPT_(Z)
      

  2.   

    用 JS 的 eval 函数可以自己实现宏功能。eval 就是把字符串变成命令来执行。
      

  3.   

    js比你这种方式灵活多了,你这种写个全局变量就实现了var _SCRIPT_ = {X:'x',Y:'y',Z:'z'};
    或:
    var _SCRIPT_ = eval("({'X':'x','Y':'y','Z':'z'})");
    使用时
    _SCRIPT_.X 或_SCRIPT_['X']
    _SCRIPT_.Y 或_SCRIPT_['Y']
      

  4.   

    不好意思,太弱了,我还是不太懂。
    _SCRIPT_.X 或_SCRIPT_['X']能代替下面的语句?
    <script type="text/javascript">document.write(X)</script>
      

  5.   


    <script type="text/javascript">
    var _SCRIPT_ = {X:'x',Y:'y',Z:'z'};
    alert(_SCRIPT_.X);
    alert(_SCRIPT_['Y']);</script> 
      

  6.   


    还是不行,
    我要的是下面js宏部分自动替换成<script type="text/javascript">document.write(_SCRIPT_.X)</script>
    <script type="text/javascript">
    var _SCRIPT_ = {X:'xxxx',Y:'yyyy',Z:'zzzz'};
    //alert(_SCRIPT_.X);
    //alert(_SCRIPT_['Y']);
    </script></head><body>
    <table style="height:100%; width:100%;no-repeat" cellpadding="10">
    <tr>
    <td height="40" align="right" style="font:15px verdana;">js宏</td>
    <td colspan="2"><input id="username" type="text" /></td>
    </tr>
    </table>
    </body>
      

  7.   

    给它个ID,然后innerHTML就是了。不要把C里面的思想带到JS中来,JS比你想像中的灵活得多<script type="text/javascript">
        window.onload=function(){
            document.getElementById("w1").innerHTML='xxxxxx';
        }
    </script>
    <table style="height:100%; width:100%;no-repeat" cellpadding="10"> 
        <tr> 
            <td height="40" align="right" style="font:15px verdana;" id="w1">js宏</td> 
            <td colspan="2"><input id="username" type="text" /></td>                 
        </tr> 
    </table>如果是需要操作多个的,自己定义个规则出来就行了
    <script type="text/javascript">
        window.onload=function(){
            var data={w1:'xxxxxx',w2:'yyyyyy'};
            for(var key in data){
                if(data.hasOwnProperty(key)){
                    document.getElementById(key).innerHTML=data[key];
                }
            }
        }
    </script>
    <table style="height:100%; width:100%;no-repeat" cellpadding="10"> 
        <tr> 
            <td height="40" align="right" style="font:15px verdana;" id="w1">js宏1</td>
            <td height="40" align="right" style="font:15px verdana;" id="w2">js宏2</td>  
            <td colspan="2"><input id="username" type="text"/></td>                 
        </tr> 
    </table>
      

  8.   

    crying_boy 厉害, js也比我想象的要强大,现在总感觉自己似懂非懂的状态,还是弱啊最后一个问题
    下面2个是数组么还是json?,这个东西怎么区分,还有怎么看(理解)
    1、
    var data={w1:'xxxxxx',w2:'yyyyyy'}; 2、
    xx={
     cn:{HELLO:"你好", WORLD:"世界"},
     en:{HELLO:"hello", WORLD:"world"}
     };
      

  9.   

    json,至于怎么看,你可以把它简易的看成一棵树,以你的第二个例子为例:
    xx
      --cn
        --HELLO:'你好'
        --WORLD:'世界'
      --en
        --HELLO:'hello'
        --WORLD:'world' 
    它不就是一颗树么?从下往下依次含有对应的属性[成员],直到最终的值类型。其实它也与日常应用中的目录结构类似。就好比:xx文件夹下面有cn和en两个文件夹,cn文件夹下又有两个文件夹……和数组最明显不同的地方就是,json是键/值对,但数组就是值,或者也可以看作是索引/值
    var arr=[0,1,2,3];
    var arr=[0,1,[2,3],4,5];  
    大概就这么个意思吧