js面相对象的理解,南昌算命民间高人
技术不是很好,怕是要误人子弟
举个例子
比方说一个游戏里面有“玩家”,而“玩家”就有血量、饥饿等属性。
于是便可以把“玩家”作为一个对象:
var player = {heath: 100, hunger:100}
你会发现“对象”是几种不同值的存储器。
然后你就可以用player.health来获取血量,player.hunger来获取饥饿
player.health = xx 以及 player.hunger = xx 来设置
但是当多人游戏时,会有很多“玩家”,然后你发现创建对象很麻烦,而且也不够“优雅”。
于是,就有了“构造方法”
不想写了。。接下来自己查教程了解,相信你会恍然大悟的
理解正确 理解正确
首先你的理解面向过程:加入把一件东西放到一个箱子里,面向过程就是第一部打开箱子,然后把东西放进去,然后关闭箱子:
面向对象:就是把箱子看成一个对象,这个对象有属性比如说长宽高尺寸这些,他还有一个功能就是装东西.装东西这个就I相当于一个函数
为了能够清楚的解释这一切,我先从对象讲起。从其他面向对象语言(如Java)而来的人可能认为在JS里的对象也是由类来实例化出来的,并且是由属性和方法组成的。
实际上在JS里并不是如你所想(我开始是这么想的)那样,对象或直接称为object,实际上只是一些映射对的集合,像Map,字典等概念。JS里有大概7种类型(加上Symbol),数字、字符串、null、undefined、布尔、Symbol、对象。除对象以外的其他类型属于原始类型,就是说它们比较单纯,包含的东西比较少,基本上就是字面量所表示的那些(像C语言中的一些类型,就是占那么多空间,没有其他的东西)。object基本上是一些键值对的集合,属于引用类型,即是有一个名字去指向它来供别人使用的,就好像比较重的东西你拿不动,而只是拿了张记录东西所在地的纸条。所以当A对象里嵌套了B对象,仅表示A里面有一个引用指向了B,并不是真正把B包含在A里面,虽然看起来是这样(尤其是从对象的字面量上来看),所以才会有所谓的深拷贝与浅拷贝。
有句话叫“JavaScript里一切皆对象”,是因为在很多情况下原始类型会被自动的转为对象,而函数实际上也是对象,这样这句话看起来就很有道理了。
说明对象的本质是为了正确地认识对象,因为这关系到后面的理解。
爱莫能助。
老师你好,能帮我算一下今年的财运吗 我是1970年9月27日午时