JS对象

作者: lsj980Ya | 来源:发表于2021-01-01 09:50 被阅读0次

    JS对象创建方式

    1. 字面量
    var obj =
    {
      "name":"zhansan",
      "age":25,
      "say": function(m) { 
          console.log(obj.age + m);
          console.log(obj.name + m);        
        }
    };
    
    2. 通过new创建内置对象

    关键字new后跟随一个函数调用,这里的函数条用称作构造函数(constructor)
    var obj = new Object()

    3. 实例化自定义对象,通过 new + 自定义构造函数
    function Fn() {
    }
    //实例化了一个空对象和 new Object()一样
    var obj = new Fn()
    
    function Fn() {
      this.age = 40;
      this.name = "zhansan";
      this.say = function() {
          return 'Hello'
      }
    }
    var obj = new Fn();//实例化构造函数得到实例对象
    console.log(obj);
    
    obj

    构造函数和普通函数中 this的指向问题

    1. 在构造函数中this指向当前实例对象
    2. 在普通函数中this指向window对象,这是js内置的全局对象。

    此外我们平时用的alert("")等方法都是window对象的方法和window.alert("")等价的,window.是可省略的。我们平时定义的全局变量也是放在window对象里面的

    区分变量的类型

    1,typeof 可以区分 intstringboolundefinedfunction 不能区分 nullarrayobject,这几个类型用typeof判断返回的都是Object。为了区分我们使用instanceof 判断是否是指定对象的实例对象,又由于Array既是Object类型有是Array类型,所以先判断是不是Array,如果不是Array在判断是否是Object。具体代码如下
    function getType(n) {
        if (typeof n == 'object') {
            if (n instanceof Array) {//先判断数组,因为数组即使Array又是Object
               return "array";
             } else if (n instanceof Object) {
                    return "object";
             }else{  
                    return "null";
              }
        } else{
              return typeof n;
        }
    }
    

    相关文章

      网友评论

          本文标题:JS对象

          本文链接:https://www.haomeiwen.com/subject/tjafoktx.html