笔记:js高级程序设计第五章,函数的引用类型与基本类型
来源:互联网 发布:getimagesize php 编辑:程序博客网 时间:2024/06/06 10:06
引用类型与基本包装类型的主要区别就是对象的生存期。使用 new 操作符创建的引用类型的实例,
在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一
行代码的执行瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。来看
下面的例子:
var s1 = "some text";
s1.color = "red";
alert(s1.color); //undefined
在此,第二行代码试图为字符串 s1 添加一个 color 属性。但是,当第三行代码再次访问 s1 时,
其 color 属性不见了。问题的原因就是第二行创建的 String 对象在执行第三行代码时已经被销毁了。
第三行代码又创建自己的 String 对象,而该对象没有 color 属性。
当然,可以显式地调用 Boolean 、 Number 和 String 来创建基本包装类型的对象。不过,应该在
绝对必要的情况下再这样做,因为这种做法很容易让人分不清自己是在处理基本类型还是引用类型的
值。对基本包装类型的实例调用 typeof 会返回 "object" ,而且所有基本包装类型的对象都会被转换
为布尔值 true 。
在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一
行代码的执行瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。来看
下面的例子:
var s1 = "some text";
s1.color = "red";
alert(s1.color); //undefined
在此,第二行代码试图为字符串 s1 添加一个 color 属性。但是,当第三行代码再次访问 s1 时,
其 color 属性不见了。问题的原因就是第二行创建的 String 对象在执行第三行代码时已经被销毁了。
第三行代码又创建自己的 String 对象,而该对象没有 color 属性。
当然,可以显式地调用 Boolean 、 Number 和 String 来创建基本包装类型的对象。不过,应该在
绝对必要的情况下再这样做,因为这种做法很容易让人分不清自己是在处理基本类型还是引用类型的
值。对基本包装类型的实例调用 typeof 会返回 "object" ,而且所有基本包装类型的对象都会被转换
为布尔值 true 。
0 0
- 笔记:js高级程序设计第五章,函数的引用类型与基本类型
- Javascript高级程序设计第二版第五章--引用类型--笔记
- javascript高级程序设计第三版 第4章 基本类型和引用类型的值 学习笔记
- 【javascript高级程序设计】读书摘录2 第五章、引用类型
- JavaScript高级程序设计 第五章 — 引用类型
- 《JavaScript高级程序设计》总结 第五章 引用类型
- javascript高级程序设计 第五章引用类型 迭代方法
- javascript高级程序设计第三版 第五章 引用类型
- javascript高级程序设计学笔记——第五章 引用类型
- 《js高级程序设计》学习笔记--5.引用类型
- JS高级程序设计笔记(五):引用类型
- javascript高级程序设计--第五章基本包装类型开始
- js高级教程 第五章-引用类型(中)
- js高级教程 第五章-引用类型(5.6||)
- JS高级程序设计5-引用类型
- JS高级程序设计(三):引用类型
- js高级教程阅读笔记 第五章-引用类型(上)
- js高级教程阅读笔记 第五章-引用类型(5.5)
- Android换肤系列 资源的拦截和替换
- JavaSE:1min讲解引用类型参数(1)-类
- Android中的EditText默认时不弹出软键盘的方法
- 如何通过MyEclipse打印GC日志
- Android 最新 Support V4 包大拆分有用吗?
- 笔记:js高级程序设计第五章,函数的引用类型与基本类型
- C#中类的属性的类型为接口时修饰符问题
- ABAP 基本类型 强制转换
- http服务器返回状态总结
- android 文档 从产品到运维
- 配置HOSTS文件
- a标签中调用js的几种方法
- Eclipse中恢复已删除文件和还原到先前版本
- JVM中判断对象是否存活的方法