【阅读】《Head First JavaScript》第十章——创建自定义对象

来源:互联网 发布:电视剧《福贵》知乎 编辑:程序博客网 时间:2024/05/18 12:29

复习要点:

  • 我们在使用对象的时候,有时候会遇到那种不需要每一个对象都要有的变量和方法(就是Java中的静态方法和静态变量啦),这时如果我们在创建对象的时候创建了这些只需要一个的的变量或方法,就会造成资源的浪费。这个时候我们就要在JS代码中的使用相当于Java中静态的功能了
  • 使用this关键字访问实例的特性:
    function People(name, age) {  this.name = name;  this.age = age;};
  • 类拥有的方法(联想到Java中的静态方法),可以创造一次,运行很多次。这种方法储存在类里,让所有实例共享一份方法代码
  • JS中创建类拥有的方法:在类里面写下
    People.prototype.speak = function() {  ...};
  • JS中使用类拥有的方法:
    xiaoming.speak();
    住:xiaoming是一个人
  • 类是对象的描述,实例则是实际的对象,根据对象描述所创建
  • 类勾画了对象的特性与方法(Java中属性和函数),实例则把真正的数据放在特性里以供方法使用
  • 关键字this用于从实例本省的程序代码内访问实例(就是说this关键字已经代表着当前这个实例了)
  • prototype对象让方法课存储与类内,以免实例不必要地一直使用同一个代码,要复制好久的亲~
  • javascript并未真正支持类作为语言的具体构成要素。javascript使用prototype以模拟类
  • 类特性“必须”通过实例来访问:遂让类特性使用prototype对象创建,并借此存储在类中,但是它们还是必须透过实例被访问。所以,类特性的方位方式就像实例特性,也要使用关键字this和对象的那个符号(点号)。差异在于特性的存储地点在类中(类特性),而实例特性存储在某个实例中(其实也可以直接想Math.random()那样不用实例来访问,看下一条你就知道了)
  • 只属于类的方法:声明的时候不要用prototype关键字了
    People.drink = function(){  alert("我要喝水");};
    使用的时候就是这样:xiaoming.drink();就会输出“我要喝水”这个四个字了
  • 注意像上一天这样的方法无法使用实例中的内容,但是你可以把一整个实例作为参数传递给这个只属于类的方法(有人知道这个方法有没有什么专有名词的,每次都用这个好麻烦)
  • 如果一个函数中缺少了一部分自变量,那么那部分函数中的自变量将会变成null,咳咳,这不一定是坏事哦,如果你想要一些可选的自变量的话(假如说是一个人的构造函数,其中姓名,年龄是必须的,喜不喜欢画画,爱看什么书是不必须的,这个时候你就可以把控制是否喜欢看书的变量放在最后,放在最后的原因是就算没有它,其他自变量的对应方式也不会有什么变化。而后在函数中判断一下这个控制是否爱看书的变量是否为null就好了)

0 0
原创粉丝点击