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]
...............

最新文章

  1. Chrome的ERR_UNSAFE_PORT解决办法
  2. Java基础之读文件——使用通道复制文件(FileBackup)
  3. Array types are now written with the brackets around the element type
  4. confirm的用法
  5. HDU 4982 Goffi and Squary Partition(推理)
  6. 深入理解spring中的各种注解(转)
  7. 分析java堆
  8. Torch的安装和学习
  9. Java script 逻辑运算符
  10. python中的property属性
  11. LaTeX语法笔记
  12. php分享二十四:数组
  13. Linux下Oracle常用命令
  14. Oracle数据库exp和imp方式导数据
  15. SQL行列乾坤大挪移
  16. 在 Linux 下使用任务管理器
  17. 互联网轻量级框架SSM-查缺补漏第七天(MyBatis的解析和运行原理)
  18. 第八届省赛 B:Quadrat (打表找规律)
  19. AC日记——小M的作物 bzoj 3438
  20. AnimatorStateInfo

热门文章

  1. WEB框架之Ajax
  2. 一个命令查看mysql的所有配置(原创)
  3. 14.Mysql事务控制和锁定
  4. linux 输出重定向
  5. istio 服务地图
  6. PAT 1081 检查密码(15) (代码+思路)
  7. Fedora : multilib version problems found
  8. NC 6系分配组织方法
  9. UI设计师经常去的五个网站
  10. Photoshop零基础教程集锦,助你快速进阶为大佬,轻松、任性!!!