问题描述
- 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就是一个指针,它本身就是一块内存,是一个实体。对象引用是用一个变量存储一块内存的位置,不是一个实体
时间: 2024-08-26 05:15:05