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

问题描述

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

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

javascript原始值和对象引用实例分析

javascript原始值和对象引用实例分析         这篇文章主要介绍了javascript原始值和对象引用的方法,实例分析了javascript原始值和对象引用的功能.定义与相关技巧,需要的朋友可以参考下 本文实例讲述了javascript原始值和对象引用的方法.分享给大家供大家参考.具体分析如下: 一句话来说:原始值是不可变的,而对象引用是可变的. js中的原始值(undefined.null.布尔值.数字和字符串)与对象(包括数组和函数)有着本质的区别.原始值是不可更改的,任何方法

浅谈JavaScript中指针和地址_javascript技巧

个人理解:指针只是指向内存的一个索引:而地址则是内存中确切的位置. 下面是函数中关于指针和地址一个小例子: function sum(num1,num2){ return num1+num2; } alert(sum(10,10)); //20 var anotherSum=sum; alert(anotherSum(10,10)); //20 sum=null; alert(anotherSum(10,10)); //20  注意:使用不带圆括号的函数的名是访问函数指针,而非调用函数,所以 s

JavaScript使用指针操作实现约瑟夫问题实例_javascript技巧

本文实例讲述了JavaScript使用指针操作实现约瑟夫问题的方法.分享给大家供大家参考.具体分析如下: 实现之前当然要自己来编写一些 JS 数组内部指针的操作函数,就像:reset(), current(), next(), prev(), search(), end() 这些函数,我们都要来自己实现,因为 JS 没有内置这些神奇的操作函数 Array.prototype.pointer = 0;//模拟数组内部指针 //Reset 函数,将数组内部指针归位(指向第一个元素) var rese

javascript原始值和对象引用实例分析_javascript技巧

本文实例讲述了javascript原始值和对象引用的方法.分享给大家供大家参考.具体分析如下: 一句话来说:原始值是不可变的,而对象引用是可变的. js中的原始值(undefined.null.布尔值.数字和字符串)与对象(包括数组和函数)有着本质的区别.原始值是不可更改的,任何方法都无法更改一个原始值:对于字符串来说,字符串中所有的方法看上去返回了一个修改后的字符串,实际上返回的是一个新的字符串值: var str="hello world"; s.toUpperCase(); s;

Javascript this指针_javascript技巧

前言 Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript 可以通过一定的设计模式来实现面向对象的编程,其中this "指针"就是实现面向对象的一个很重要的特性.但是this也是Javascript中一个非常容易理解错,进而用错的特性.特别是对于接触静态语言比较久了的同志来说更是如此. 示例说明 我们先来看一个最简单的示例: <script type="text/javascript&

javascript引用类型指针的工作方式_javascript技巧

先看个例子: <script> var a = {n:1}; var b = a; a.x = a = {n:2}; console.log(a.x);// --> undefined console.log(b.x);// --> [object Object] </script> 上面的例子看似简单,但结果并不好了解,很容易把人们给想绕了--"a.x不是指向对象a了么?为啥log(a.x)是undefined?"."b.x不是应该跟a.

指针-Java对象引用指向的问题

问题描述 Java对象引用指向的问题 有以下代码: package com.lzw; import java.util.*; public class UpdateStu implements Comparable{ String name; long id; public UpdateStu(long id, String name) { this.id = id; this.name = name; } public int compareTo(Object o) { UpdateStu u

Javascript引用指针使用介绍_javascript技巧

请尝试完成下列完形填空: 复制代码 代码如下: /* 创建一个队列,头为head0,尾为tail0 */ function IntList(head0, tail0){ this.head = head0 || 0; this.tail = tail0 || null; } /* 返回一个IntList包含数组中的所有数 */ IntList.list = function(__args){ var sentinel = new IntList(), len = __args.length, p

JavaScript使用指针操作实现约瑟夫问题实例

 实现之前当然要自己来编写一些 JS 数组内部指针的操作函数,就像:reset(), current(), next(), prev(), search(), end() 这些函数,我们都要来自己实现,因为 JS 没有内置这些神奇的操作函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46