javascript中的引用类型 和 普通类型
来源:互联网 发布:淘宝买钢珠警察会查么 编辑:程序博客网 时间:2024/05/29 02:31
1、 基本的赋值
例子1:
var arr1 = [1,2,3,4];var arr2 = arr1;arr2[2] = 10;console.log(arr1); // [1,2,10,4]
例子2:
var obj1 = { a:1, b:2, c:3};var obj2 = obj1;obj2['b'] = 10;//或者 obj2.b = 10;console.log(obj1); //{a: 1, b: 10, c: 3}
小结:
javascript中数据类型有Number 、 Boolean 、 undefined 、 Object、 Function 、 String 、 Null、RegExp、Date等等,其中更分为基本类型(值类型),引用类型
两者的区别:基本类型的数据是存放在栈内存中的,而引用类型的数据是存放在堆内存中的
其中基本类型包含:Number Boolean String undefined null…
引用类型:Object
javascript中除了上面的基本类型(number,string,boolean,null,undefined)之外就是引用类型了,也可以说是就是对象了。对象是属性和方法的集合。
也就是说引用类型可以拥有属性和方法,属性又可以包含基本类型和引用类型。
引用类型值保存在内存中,而JS是不能直接访问内存的,所以对于引用类型,操作的不是实际的对象而是对象的引用。
因此,引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响
==注:string在ECMAScript中不是引用类型,和其他许多语言不同。==
拓展:
栈(stack):有编译器自动分配和释放,存放函数的参数、局部变量、临时变量、函数返回地址等;
堆(heap):一般有程序员分配和释放,如果没有手动释放,在程序结束时可能由操作系统自动释放
2、原型链的继承:(引用类型的属性被所有实例共享)
function Parent(){ this.name = ['hello','world'];}function Child(){}Child.prototype = new Parent;//或者Child.prototype = new Parent();var child1 = new Child();child1.name.push('html5'); //["hello", "world", "html5"]console.log(child1.name);var child2 = new Child();console.log(child2.name); //["hello", "world", "html5"]
3、原型式继承
将传入的对象作为 创建的对象的原型(ES 5中Object.create)的模拟实现
function createObj( obj ){ function Fun(){}; Fun.prototype = obj; return new Fun();}
function createObj( obj ){ function Fun(){}; Fun.prototype = obj; return new Fun();}var Person = { name:'hello', friends:['css3','html5']}var p1 = createObj(Person);var p2 = createObj(Person);p1.name = 'world';console.log(p2.name); //hellop1.friends.push('javascript');console.log(p2.friends); //["css3", "html5", "javascript"]
与原型链继承相似
阅读全文
0 0
- javascript中的引用类型 和 普通类型
- JavaScript中的值类型和引用类型
- Javascript中的基本类型和引用类型
- JavaScript中的基本类型和引用类型
- Javascript 中的引用类型和基本类型(值类型)
- JavaScript中的引用类型
- JavaScript中的引用类型
- javascript 中的引用类型和值类型,复制与拷贝
- JavaScript中的基本类型和引用类型的复制使用
- JavaScript中的基本类型值和引用类型值区别
- JavaScript中的值类型与引用类型
- JavaScript中的基本类型与引用类型
- JavaScript中的引用类型Function类型学习心得
- JavaScript中的值类型与引用类型
- javascript的基本类型和引用类型
- JavaScript原始类型和引用类型
- 理解JavaScript中值类型和引用类型
- JavaScript基本类型和引用类型
- 使用监听器统计当前的在线用户数
- 使用ionic自带的push notification
- μcos-II任务延时
- 关于Hive和SQL
- Codeforces Gym 100015H Hidden Code(暴力)
- javascript中的引用类型 和 普通类型
- 关于postgresql资料
- 子序列
- 比特币源码分析(10)
- shell 脚本入门--基础1
- spark-jdbc No suitable driver found错误处理
- webstorm 2017.2 激活破解
- 强力推荐!那些你不能错过的 GitHub 插件和工具
- 随机森林(Random Forest)(RF)