"小白最近我们说了好几次 javascript 中的对象, 现在你对对象的构成了解了么?"
小白:"了解了, 对象可以通过两种方式进行定义. 假如把我自己作为一个对象通过下面两种定义方式都可以:"
老朱说道:"那如果页面中同时需要十几个像你一样的对象怎么办?"
小白:"继续定义呗! 还能咋地!"
"那我要是不想让人修改对象的名字和性别怎么办呢?"
小白楞了一下, 说道:"这就没办法了."
老朱:"是啊! 实际使用的时候, 我只需要使用以下 obj2.sex='女'就可以直接改变你的性别属性, 假如有一些方法和属性我们只让对象自己使用, 在这种情况下我们就需要定义一个类来把对象抽象出来!"
小白:"上大学的时候对类就是迷迷糊糊应付过去的, 我还有些印象, 但是具体知识忘的差不多了!"
老朱问了一句:"你是不是男人?"
小白楞了, 还以为老朱生气了, 说道:"怎么了? 我当然是男人了."
老朱说道:"男人类就是把所有男人拥有的特征提取出来的一个类, 女人类就是把所有女人拥有的特征提取出来, 男人和女人都属于人类, 所有他们都有人类的特征, 人类属于灵长类动物, 所有人类有灵长类的特征, 而灵长类属于动物, 所以灵长类有动物类的特征. 这些你能明白么?"
小白说:"哦! 能明白. 你说的男人类, 女人类, 人类, 灵长类, 动物类这些都是类, 他们不是一个对象. 如果具体到个人就属于一个对象了."
老朱:"恩, 还有一个重要知识, Object 是所有类的祖宗, 也就是所有类都属于它. 你刚刚通过 new Object 定义了一个对象, 相当于实例化了一个类, 把类实例化就成对象了. 关于类的知识我希望你能自己去了解一下, 今天我们不对它做太深入的探讨了. 还是说说 javascript 中的类吧!"
老朱顿了一下接着说道:"在 javascript 中我们其实已经碰到过很多类, 比如字符串类, 数组类. 我们之前定义字符串的时候会直接写 s ='aaa'这种模式, 这里 s 其实是一个对象. 如果你想定义一个标准的字符串类型, 通过实例化一个字符串类就可以了."
"这里的 a 就是实例化的字符串类, 我们可以叫他字符串对象. 根据经验, 我们可以拿到 a 的长度为 3, 那我们能修改 a 的长度 (length) 么?"
"不可以吧! 这里的长度如果修改了, 我们就没法获取 a 中字符串 asd 的正确长度了."
老朱说:"恩, 这里的 length 属性是只读的. 还有一点你也注意到了, 我们实例化 String 类以后, a 就可以使用 String 的 toLocalUpperCase 方法把小写字母都变成大写了."
小白:"哎呀~还是有点不理解, 我先去看看关于类的介绍吧!"
"恩, 先看看类的介绍吧! 没有类的基础知识, 这块理解起来确实不太容易, 你先看看, 一会有时间我们自己定义一个 javaScript 类, 通过一个小例子你就会很容易理解了."
想学 H5 的朋友可以关注老炉, 您的关注是我持续更新《小白 html5 成长之路》的动力!
来源: http://www.jianshu.com/p/9eb023e0ee0d