首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

javascript 的引用传递有关问题

2014-04-21 
javascript 的引用传递问题 (function () {var root thisvar testtest root.test {}root.test

javascript 的引用传递问题

 (function () {

            var root = this;

            var test;

            test = root.test = {};

            root.test = {
                showMessage: function (message) {

                    alert(message);
                }
            };

        }).call(this);

        test.showMessage("sdf");


代码如上,为什么报错啊
[解决办法]
外边访问test,肯定从window下找,而上边的代码中有了定义,this指向window root.test={} 即window下的test属性值为空json ,下面自然没有showMessage方法
[解决办法]
你原来的root.test自己赋值了{}之后又把指针传给了test变量,但是test={showMessage}里面又把自己的指针给重新改掉了,所以此时修改test不会改变root.test


(function () {
  
            var root = this;
  
            var test = {};
test["fun"]={};

            root.test = test;

            test["fun"]= {
                showMessage: function (message) {
  
                    alert(message);
                }
            };
//console.log(test);
  
        }).call(this);

        test["fun"].showMessage("sdf");


通过这样应该是可以的
[解决办法]
test重新赋值了,跟root.test不再有关联。

这样就对
(function() {

var root = this;

var test;

test = root.test = {};

test.showMessage=function(message) {

alert(message);
}



}).call(this);

test.showMessage("sdf");

热点排行