犀牛书重读笔记(二)

JavaScript中的对象

  JavaScript中的对象是一种集合,它将很多值聚合在一起,可以通过名字访问这些值。对象也可以看做属性的无序集合,每个属性都是键值对,属性名是字符串。所以也可以吧对象看成字符串到值的映射。

  1、es5中的创建对象

    在es5中,创建对象需要的是new关键字或Object。create()。也可以省略new,直接var a = {}。

    1.1、 es5中的继承

      直接继承

        

        function Super(){
            this.val = 1;
            this.arr = [1];
        }
        function Sub(){
            // ...
        }
        Sub.prototype = new Super();    // 核心
 
        var sub1 = new Sub();
        var sub2 = new Sub();
        sub1.val = 2;
        sub1.arr.push(2);
        alert(sub1.val);    // 2
        alert(sub2.val);    // 1
   
        alert(sub1.arr);    // 1, 2
        alert(sub2.arr);    // 1, 2
 
      通过构造函数
 

        

        function Super(val){
            this.val = val;
            this.arr = [1];
 
            this.fun = function(){
                 // ...
            }      
        }
        function Sub(val){
            Super.call(this, val);   // 核心
            // ...
        }
 
        var sub1 = new Sub(1);
        var sub2 = new Sub(2);
        sub1.arr.push(2);
        alert(sub1.val);    // 1
        alert(sub2.val);    // 2
 
        alert(sub1.arr);    // 1, 2
        alert(sub2.arr);    // 1
 
        alert(sub1.fun === sub2.fun);   // false
   1.2、 es6的继承
      class Animal{
              //构造函数
              constructor(props){
                  this.name=props.name||'未知';
              }

              eat(){
                  alert(this.name+"在吃东西...");
              }
          }

          //class继承
          class Bird extends Animal{
              //构造函数
              constructor(props){
                 //调用实现父类的构造函数
                  super(props);
                  this.type=props.type||"未知";
              }

              fly(){
                  alert(this.name+"在飞...");
              }
          }
  2、属性的查询
    实现对象中属性的查询有两种方式,一种是通过.来查询,另哟中是用[]来查询,但是对于[]来说,中间的值必须是字符串。
  3、属性的监测
    通过
      'x' in o
    监测 返回一个布尔值
数组
  join()
    用于将数组转化成字符串
    var a = [1,2,3]
    a.join() //'1,2,3'
    a.join('') // '123'
  reverse()
    用于将数组颠倒
    var a = [1,2,3]
    a.recerse().join() //'3,2,1'
  sort()
    用于排列数组
  concat()
    创建并返回一个新数组
  
  slice()
    裁剪数组 可以用负数
  splice()
    裁剪数组 不能用负数
  pop() push()
    数组删减操作,从后往前
  unshift() shift()
    数组删减操作,从前往后
  
  
posted @ 2017-06-20 20:12  不想起名  阅读(353)  评论(0)    收藏  举报