javascript关于指针与对象引用的问题

如下一个原型对象:

 function Box(){}
 Box.prototype = {
     country : 'China',
     method : function(){
        return this.country;
     }
 };

 var box1 = new Box();
 var box2 = new Object();

 var a = Box.prototype;
 var b = box1.__proto__;

 alert(a.isPrototypeOf(box1));    //返回false
 alert(b.isPrototypeOf(box1));    //返回true

1、指针与对象引用是等价的吗?
2、变量a存储的是指针还是对象引用?
3、b呢?
4、a与b有什么区别?如果是等价的,为何alert(a.isPrototypeOf(box1))返回false,而alert(b.isPrototypeOf(box1))返回ture?
5、box1和box2具体有什么区别?

谢谢!

可以肯定的回答你 a===b ;

自己测试一下 console.log(a===b);//true
console.log(a.isPrototypeOf(box1)); //返回**true**
console.log(b.isPrototypeOf(box1)); //返回true
box1是Box的实例,实例化后就可以调用构造函数和原型上的方法和属性 ;box2是一个新创建的对象,当然也是Object的实例,相当于var box2={};

指针和对象引用不一样;
JavaScript中的this就是一个指针,它本身就是一块内存,是一个实体。对象引用是用一个变量存储一块内存的位置,不是一个实体