我觉得
var a = new A();

var a = {};
A.call(a);
是完全相同的。

解决方案 »

  1.   


    <html>
    <head>
    <script>
    function A()
    {
     this.d=5;
     alert(5);
    }
    var a= new A();
    alert(a.d);
    var b={};
    A.call(b);
    alert(b.d);
    </script>
    </head>
    <body>
    </body>
    </html>测试了一下,应该是一样的
      

  2.   

    是一样的,一种是JSON的形式.一种是实例化的形式
      

  3.   

    不一样,如果函数没有prototype(其实每一个函数都有prototype,但是的默认的这个属性是一个空的对象),那么就是一样的,如果有,实际上new A()这种写法,除了执行函数A之外,还有给创建是实例添加prototype属性的属性。
      

  4.   

    不管是call还是apply都会丢弃对象的prototype属性或方法.所以是不一样的
      

  5.   

    对对 不一样
    a=new A() 会把A的prototype解开到a里面
      

  6.   

    不一样的var a new A();// 这种形式,a实例对象永远具有构造函数A的所有属性和方法但是像:var a = {};
    A.call(a);// 此处只是临时将context(上下文,这里就是构造函数中的this)“临时”指向对象a
    // 之后就a和A就一点关系也没有了
      

  7.   

    http://bbs.51js.com/viewthread.php?tid=77451
    看看