JS学习之包装对象、hasOwnProperty、constructor

包装对象:
在JS内部,当我们去调用字符串、数字、布尔值这些基本数据类型的属性或者方法的时候,JS会在内部先把这些数据类型转成一个对应的对象类型(包装对象),然后再去调用包装对象身上的属性或者方法。

var str="xbj";//这个过程等同var str=new String('xbj');,JS内部帮我们做了
console.log(str.length); //3

hasOwnProperty:判断一个属性是不是自己对象身上的
语法:对象.hasOwnProperty(属性)
返回:
true 自身属性
false 非自身属性
注意:
1、这个方法是Object身上的方法
2、只会找自己对象身上是否具有要查找的属性

     function Person(name){
            this.name=name;
      }
     Person.prototype.country='china';//在原型身上添加一个属性
     var p=new Person('xubj'); // 实例化一个对象
     console.log(p.name);  // xubj
      console.log(p.country); // china
      console.log(p.hasOwnProperty('name')); // true
      console.log(p.hasOwnProperty('country')); // false
      // 因为country并不是对象p身上的,是Person构造函数原型身上的属性

constructor:每个对象身上都会有该属性,默认指向该对象对应的构造函数,这个属性不是放在对象身上,放在对应的原型对象身上

作用:查看对象的构造函数
语法: 对象.constructor
返回值: 对象的构造函数

   function Person(name){
            this.name=name;
      }
   Person.prototype.country='china';
   var p=new Person('xubj');
   console.log(p);  // xubj
      console.log(p.constructor);  //  返回值是Person这个构造函数
      console.log(p.constructor===Person); // true

原文地址:https://www.cnblogs.com/xubj/p/9881966.html