函数对象
函数也是对象的一种,函数执行的时候会创建 this 和 prototype 属性
一、this 属性(对象类型)
二、prototype 属性(对象类型)
- 在 prototype 上定义的属性和方法可以被对象实例 共享。
三、关于对象属性常见的方法
3.1、delete 实例.属性:delete person1.age
- 删除实例的属性(this对象里的)
// delete 删除的是 实例的属性
function Person(){
this.age = 18;
}
Person.prototype.sex = 'female';
var person1 = new Person();
delete person1.age;
delete person1.sex;
console.log(person1);// {}
console.log(Person.prototype.sex);//female
3.2、in 操作符
- 判断对象 是否存在 某属性,查找范围是:实例 + 原型;
- 存在 返回 true ,反之 false ;
function Person(){
this.age = 18;
}
Person.prototype.sex = 'female';
var person1 = new Person();
console.log('age' in person1); //true
console.log('sex' in person1); //true
console.log('name' in person1); // false
3.3、for…in 遍历对象属性
- 属性范围:实例属性+ 原型属性
function Person(){
this.age = 18;
}
Person.prototype.sex = 'female';
var person1 = new Person();
for(var item in person1){
console.log(item);
}
//打印 age sex
3.4、hasOwnProperty() 判断某个属性是否在实例上
- 在实例上 返回 true
function Person(){
this.age = 18;
}
Person.prototype.sex = 'female';
var person1 = new Person();
console.log(person1.hasOwnProperty('age')); //true
console.log(person1.hasOwnProperty('sex')); //false
console.log(person1.hasOwnProperty('name')); //false
3.5、Object.keys() 获取实例上的属性数组
function Person(){
this.age = 18;
}
Person.prototype.sex = 'female';
var person1 = new Person();
person1.weight = 50;
console.log(Object.keys(person1)); // [ 'age', 'weight' ]