包装对象:
在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