深入浅出javascript(六)对象
2.为什么一切皆对象?
《Javascript权威指南》解释了这个问题,问题的起源在于,如果typeof(字符串)返回的是string,并非object,那么为什么字符串也是对象呢?
简单说,像这类简单数据类型,JS都有一个对应的包装类(wrapper),比如说:
var a="helloworld";
当调用字符串a的方法时,JS就会在内部创建一个String包装对象,这种对象引用完之后就会瞬间消失,而且不会改变原字符串的内容。
理解这个,我们就可以通守new显式的创建一个字符串对象,此时是对象,而不是string数据类型了。
var s=new String("hello world");
三、具有对象能力
具有“对象化”的能力,就是可以将数据和代码组织成复杂结构的能力,在JS中,只有object类型和function类型提供了对象化的能力。
1.建立对象的方法。
参考另一篇日志:http://www.cnblogs.com/tinaluo/p/6667639.html;
2.关于对象的说明:
在JS中,对象的属性和方法可以任意添加。
1.object类型。
var apple={}; //定义一个苹果空对象,什么都没有,为空;
apple.color="red"; //添加属性color;
apple.price=20.5; //添加属性price;
apple.show=function show(){ //添加方法show(),在这里show成了一个变量;function类型的变量;
alert(apple.price);
};
apple.show(); //调用对象的方法show();
2.函数类型属性的添加
function show() //定义一个函数;
{
alert(show.color+show.price);
}
show.color="red"; //添加color属性;
show.price=20.5; //添加price属性; show(); //调用函数
3.遍历一个对象的所有属性
对象在这一点上很像字典,即key->value的样式,可以像下标一样去索引
object和funciton类型内部实现就是一个字典结构。
var apple={}; //定义一个苹果空对象,什么都没有,为空;
apple.color="red"; //添加属性color;
apple.price=20.5; //添加属性price
apple.show=function show(){ //添加方法show(),在这里show成了一个变量;function类型的变量
alert(apple.price);
};
//遍历上面定义的apple对象的所有属性
//对象的属性很像字典key->value的样式;
for(var key in apple)
{
document.write(key+"->"+apple[key]+"<br>");
}
有了这种思路,就可以遍历各种对象的属性,【从结果来看,即使对象的方法,在对象内部也类似于属性了】。
比如说,我们经常用到window对象,就很好奇这个window对象究竟有多少种属性。
for(var key in window) //遍历系统的window对象的所有属性(方法也算为属性之内)
{
document.write(key+"->"+window[key]+"<br>");
}
结果可以看到:
top->[object Window]
location->file:///E:/NotePad/function.html
document->[object HTMLDocument]
window->[object Window]
external->[object Object]
chrome->[object Object]
key->key
speechSynthesis->[object SpeechSynthesis]
caches->[object CacheStorage]
localStorage->[object Storage]
...............
深入浅出javascript(六)对象的更多相关文章
- 深入浅出 JavaScript 对象 v0.5
JavaScript 没有类的概念,因此它的对象与基于类的语言中的对象有所不同.笔者主要参考<JS 高级程序设计>.<JS 权威指南>和<JS 精粹> 本文由浅入深 ...
- 关于JavaScript中对象的继承实现的学习总结
一.原型链 JavaScript 中原型链是实现继承的主要方法.其主要的思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.实现原型链有一种基本模式,其代码如下. function Super ...
- 从头开始学JavaScript (六)——语句
原文:从头开始学JavaScript (六)--语句 一.条件分支语句:if 基本格式: if (<表达式1>){ <语句组1>}else if (<表达式2> ...
- javaScript遍历对象、数组总结(转载)
javaScript遍历对象.数组总结 转载来源 https://www.cnblogs.com/chenyablog/p/6477866.html 在日常工作过程中,我们对于javaScript遍 ...
- 深入浅出 JavaScript 关键词 -- this
深入浅出 JavaScript 关键词 -- this 要说 JavaScript 这门语言最容易让人困惑的知识点,this 关键词肯定算一个.JavaScript 语言面世多年,一直在进化完善,现在 ...
- JavaScript 的对象继承方式,有几种写法?
JavaScript 的对象继承方式,有几种写法? 一.对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式).因为构造函数只是一个函数,所以可使 Pa ...
- 架构师JavaScript 的对象继承方式,有几种程序写法?
架构师JavaScript 的对象继承方式,有几种程序写法? 一.对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式).因为构造函数只是一个函数, ...
- JavaScript Set对象
JavaScript Set对象 Set 用于存储任何类型的唯一值,无论是基本类型还是引用类型. 只有值没有键 严格类型检测存储,字符串数字不等同于数值型数字 存储的值具有唯一性 遍历顺序是添加的顺序 ...
- JavaScript 遍历对象、数组总结
在日常工作过程中,我们对于javaScript遍历对象.数组的操作是十分的频繁的,今天抽空把经常用到的方法小结一下,方便今后参考使用! javaScript遍历对象总结 1.使用Objec ...
- javascript 全局对象--w3school
JavaScript全局对象 1. decodeURI()解析某个编码的URI. 2.decodeURInComponent()解析一个编码的URI组件. 3.encodeURI()把字符串编码为U ...
随机推荐
- listView悬浮头部的简单实现
简而言之 为listView设置onScrollListener 当滑动时 firstVisibleItem>=要悬浮的 item的position时 让悬浮部分显示 否则隐藏 其实就是 ...
- js实现各种复制到剪贴板的方法
一.实现点击按钮,复制文本框中的的内容 <script type="text/javascript"> function copyUrl2() { var Url2=d ...
- css背景图充满屏幕
代码: body { /* 加载背景图 */ background: url(resource/inv_bg.png); /* 背景图不平铺 */background-repeat: no-repea ...
- MongoDb进阶实践之八 MongoDB的聚合初探
一.引言 好久没有写东西了,MongoDB系列的文章也丢下好长时间了.今天终于有时间了,就写了一篇有关聚合的文章.一说到“聚合”,用过关系型数据库的人都应该知道它是一个什么东西.关系型数据库有“聚合” ...
- Tech 2 doesn’t system for H2 above 2007
I purchased my Tech2 from obd2tool.com and it operates excellent. Can not definitely compare softwar ...
- tmux 快捷操作
-- 基本使用 tmux # 运行 tmux -2 以256终端运行 C-b d # 返回主 shell , tmux 依旧在后台运行,里面的命令也保持运行状态 tmux ls # 显示已有tm ...
- Hotspot参数分析
-XX:+HeapDumpOnOutOfMemoryError 让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便事后进行分析 -Xmx与-Xms 虚拟机堆参数 -Xoss 设置本地方法栈 ...
- Eclipse快捷键系列
查看Eclipse自定义的快捷键或者自己定义快捷键的方式 Window --> preference --> general --> Keys 在光标所在行之后插入一行,省去了将光标 ...
- Struts问题
1.struts框架的5大组件:mvc,标签库,校验框架,国际化,tiles; 2.struts的9大核心类以及与mvc对应的关系: C ActionServlet RequestProcessor ...
- powershell上传证书
https://www.cnblogs.com/threestone/p/4001632.html powershell上传证书