以下是自己总结的几种方法
- 利用动态特性
1 function Person(){};
2 var person = new Person();
3 person.name = ‘yy’;
4 person.gender = ‘girl’;
5 console.log(person.name+’,’+person.gender);//yy,girl
6 delete person.name;//删除属性
7 console.log(person.name);//undefined
8 // 变式
9 function Person(){};
10 var person = new Person();
11 person[‘name’] = ‘yy’;
12 person[‘gender’] = ‘girl’;
13 console.log(person.name+’,’+person.gender);//yy,girl
14 delete person.name;//删除属性15 console.log(person.name);//undefined
- 构造函数中this
var Person = function (){
this.name = ‘yy’;
this.gender = ‘girl’
};
var person = new Person();
console.log(person.name+’,’+person.gender);//yy,girl
- 原型中添加属性
var Person = function (){
};
Person.prototype.name = ‘yy’;
Person.prototype.gender = ‘girl’;
var person = new Person();
console.log(person.name+’,’+person.gender);//yy,girl
console.log(person[‘name’]+’,’+person[‘gender’]);//yy,girl
- 字面量添加属性
var person = {
};
person.name = ‘yy’;
person.gender = ‘girl’;
console.log(person.name+’,’+person.gender);//yy,girl
console.log(person[‘name’]+’,’+person[‘gender’]);//yy,girl
// 另一种写法
var person = {
name: ‘yy’,
gender: ‘girl’
};
console.log(person.name+’,’+person.gender);//yy,girl
console.log(person[‘name’]+’,’+person[‘gender’]);//yy,girl
- 封装extend方法
var p1 = {};
var p2 = {name:’yy’,gender:’girl’};
p1.extend = function(obj){
for(var k in obj){
this[k] = obj[k];
}
}
p1.extend(p2);
console.log(p1.name+’,’+p1.gender);//yy,girl
console.log(p1[‘name’]+’,’+p1[‘gender’]);//yy,girl
- 在此列举了几种对象添加属性的方法,那么对象添加方法也就照猫画虎了
本文较短,如果有什么建议,多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知,不胜感激!