javascript中的值类型引用类型对象 [英] value type reference type object in javascript

查看:141
本文介绍了javascript中的值类型引用类型对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

javascript对象是基于值还是基于引用?例如:

Are javascript objects value based or reference based? For example:

obj1.list =new array();
// ------ populate list
obj2.list = obj1.list

浏览器是否为obj2.list制作了obj1.list的不同副本,或obj2.list只是对obj1.list的引用?

Does the browser make different copy of the obj1.list for obj2.list, or is obj2.list just a reference to obj1.list?

推荐答案

JavaScript对象(以及扩展名:数组,正则表达式,日期,非原始字符串/数字/布尔等)等式和赋值是基于引用的:

JavaScript Objects (and by extension: arrays, regexes, dates, non-primitive strings/numbers/booleans etc.) equality and assignment are reference based:

{a:'a'} == {a:'a'} // false

但是:

var myObject = {a:'a'};
var myObject2 = myObject;

myObject == myObject2 // true

此外:

myObject.b = 'b';

console.log(myObject2.b); // Logs: "b"

这篇关于javascript中的值类型引用类型对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆