日期:2014-05-16  浏览次数:20376 次

javascript 引用传递问题
本帖最后由 WDYDXF 于 2014-03-08 23:47:33 编辑
代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Untitled Page</title>
    <script type="text/javascript">

        var testA = {
            t1: "a"
        };

        (function () {

            this.previousTestA;
            previousTestA=testA;

            testA=function(p1){
                alert(p1);
            };

        }).call(this);

    previousTestA();
    </script>
</head>
<body>
</body>
</html>



请问为什么会报错?
我的理解如下:
previousTestA = testA说明previousTestA指向了testA的地址,
随后修改了testA为function,
那为什么previousTestA还指向原来的testA={t1:"a"}?
------解决方案--------------------
var testA = {
            t1: "a"
        };

         function Pre() {
            testA=function(){
                alert('1111');
            };
            this.previousTestA;
            this.previousTestA=testA;
        };

    var p = new Pre();
    console.log(p.previousTestA())

------解决方案--------------------
 var testA = {
            t1: "a"
        };
 
        (function (x) {
 
            this.previousTestA='';
            previousTestA=testA;
 
            testA=function(p1){
                alert(p1);
            };
 
        }).call(this);
 
    alert(previousTestA.t1);


你的previousTestA指的是哪个对象  之后testA指向了一个函数  这时候previo