JS对象

2021-01-01  本文已影响0人  lsj980Ya

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;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读