js引用类型

function Person(){};

Person.prototype={
    constructor:Person,
    name:"Nacholas",
    age:29,
    friends:{"sun","li"},
    sayName:function(){
        alert(this.name);
    }
};

var person1=new Person();
var person2=new Person();

person1.friends.push("van");

alert(person1.friends);//"sun,li,van"
alert(person2.friends);//"sun,li,van"

1.Person作为一个类,会有自己的私有属性和共有属性,可以把prototype理解为共有属性。既然共有,那么就是别人也能使用改变的。

2.friends是数组,也就是引用类型的对象,push是这个数组具有的一个方法,所以调用push的时候不会改变这个对象的内存地址。但如果是直接赋值,

person1.friends="van";

改变了内存空间,实际上就是定义了私有属性,原有的共有属性不会改变!

3.属性的查找是基于原型链的,先找私有属性,再找共有属性,如果没有共有属性,就继续网上找(Object构造函数),直到顶端。

时间: 2024-12-28 04:37:44

js引用类型的相关文章

从一个简单例子来理解js引用类型指针的工作方式

? 1 2 3 4 5 6 7 <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?".&

js——引用类型和基本类型

js中的数据类型有以下几种: Number   Boolean   undefined     Object   Function    String  Null 基本类型:Number Boolean  String  undefined null 引用类型:Object  Function 基本类型的数据是存放在栈内存中的,而引用类型的数据是存放在堆内存中的 复制变量值 基本类型: var p = 1; var p1 = p; 执行结果: 也就是说,基本类型的复制就是在栈内存中开辟出了一个新

js引用类型赋值,深拷贝与浅拷贝

JS中引用类型使用等号“=” 赋值,相当于把原来对象的地址拷贝一份给新的对象,这样原来旧的对象与新的对象就指向同一个地址,改变其中一个对象就会影响另外那个对象,也就是所谓的浅拷贝.例如: var arr = ["One","Two","Three"]; var arrto = arr; arrto[1] = "test"; document.writeln("数组的原始值:" + arr + "&

JS 引用类型和值类型

自己的看高程3第五章应用类型的时候,有些迷糊,所以上网搜到这篇文章 转自求小天的博客园,地址:http://www.cnblogs.com/lxq1990/archive/2012/11/04/2754226.html 这个比喻很形象,帮助理解. js 值类型和引用类型 JavaScript值类型和引用类型有哪些 (1)值类型:数值.布尔值.null.undefined. (2)引用类型:对象.数组.函数. 如何理解值类型和引用类型及举例 我们可以用“连锁店”和“连锁店钥匙”来理解,不知道以下比

JS 引用类型

object类型: js中大多数引用类型都是Object类型的实例.创建object实例有两种方法:第一种是使用new操作符后跟Object构造函数. var obj = new Object();obj.name = 'long'; 第二种是对象字面量. var obj = { name:'long', 'la la':111 }; 访问对象属性,一般优先使用 '.' 操作符,在属性名是变量或者属性名不符合ECMAScript标识符规范时,可以用 '[ ]'访问,如果不是变量需要给属性名加上引

JS引用类型 --- 数组

一.数组概念 用[]包起来的,一组有序的.任意数据类型的数据集合 数组的长度:array.length JS 中的数组与其他语言的数组,有很大的区别 二.创建数组的方式 1. 通过构造函数 // 创建空数组 var array=new Array(); // 创建数组,并填充三个元素10,20,30 var array=new Array(10,20,30); // 创建数组,里面存储7个值 var array=new Array(7); 2.通过字面量 var arr = []; 三.检测是不

JS引用类型 --- Object

一.对象的基础知识 概念:特指的某一个事物,有特征(属性)和行为(方法),可存储数据. 通俗理解:对象是一组无序键值对的集合,可存储数据. 对象的属性和方法:可以通过 . 的方式添加(这一点也证明了JS是一门动态类型的语言) JS中大多数引用类型的值,都是Object类型的实例 二.对象创建的 3种方式 1. {} 字面量创建对象 <script> var obj2 = {}; obj2.name = 'zhangxin'; console.log(obj2); </script>

JS引用类型(1)——Object类型

引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法对象是某个特定引用类型的实例.新对象是使用new操作符后跟一个构造函数来创建的.构造函数本身就是一个函数,只不过该函数是出于创建新对象的目的而定义的.var person = new Object(); [1]Object类型 (1)创建Object实例的方式: 1>使用new操作符后跟Object构造函数 var person = new Object(); person.name = "Nicholas"

JS引用类型(6)——基本包装类型

[6]基本包装类型 3个特殊的引用类型:Boolean.Number.String.每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据. var s1 = new String("some text");//创建string类型的一个实例 var s2 = s1.substring(2);//在实例上调用指定的方法 s1 = null;//销毁这个实例 经过此番处理,基本的字符串值就变得跟对象一样了.引用类型与基本包装类型的