先看代码
(function() {
var t = {};
t.n = {};
window[t.n.name] = 0;
})();
alert(window.t.n.name);
没有输出
给window赋值属性是用中括号还是括号?

解决方案 »

  1.   

    (function() {
    t = {};
    t.n = {};
    window.t.n.name = 0;
    })();
      

  2.   

    问问楼上大哥,为什么加上var不行呢
      

  3.   

    (function() {
    //var t = {};//这样申明就是私有变量了,函数外部无法访问到
    window.t={}///////
    t.n = {};
    t.n.name = 0;/////////
    })();
    alert(window.t.n.name);
      

  4.   

    window["t.n.name"] = 0;
    这样吧。
      

  5.   

    var T,
        baidu = T = baidu || function(q, c) {
            return baidu.dom ? baidu.dom(q, c) : null;
        };// 版本号
    baidu.version = "2.0.0.3";// baidu 对象的唯一标识(身份证号)
    baidu.guid = "$BAIDU$";// 对象唯一标识属性名
    baidu.key = "tangram_guid";// Tangram可能被放在闭包中
    // 一些页面级别唯一的属性,需要挂载在window[baidu.guid]上
    var _ = window[baidu.guid] = window[baidu.guid] || {};
    (_.versions || (_.versions = [])).push(baidu.version);// 20120709 mz 添加参数类型检查器,对参数做类型检测保护
    baidu.check = baidu.check || function(){};大哥们看看这些代码
    我alert(typeof _.versions)可以,为什么alert(typeof window[baidu.guid].versions)不可以啊,还有如何把函数内部的局部的变量赋值给winow当全局变量用啊
      

  6.   

    (function(){
        window["b"]=3;
    })();
        alert(b);
      

  7.   

     window[baidu.guid] 这儿不明白
    变量不是window["baidu.guid"]吗
    这样可以吗
    window.baidu.guid
      

  8.   

     因为加上val 和不加val 是一个作用域的问题, 加了val 就针对于这一块的被称为局部, 你找到他的上级 他的作用域就 只是在这里面,
    而不加val 表示全局则是 window的属性,所以在哪都可以访问。
      

  9.   

    // foo.boo == foo["boo"]   用 . 表示是一种语法糖
    // foo[boo] == 先计算得到boo变量的值 v, 再用  v 为索引查 foo
    window = {
    "baidu": {
    version: "2.0.0.3",
    guid = "$BAIDU$", // window[baidu.guid] === baidu.guid
    key = "tangram_guid"
    },
    "baidu.guid": undefined //  window["baidu.guid"]
    }