JavaScript对象添加、删除、修改对象的属性

时间:2021-05-25 19:44:30

https://www.cnblogs.com/goweb/p/5357640.html

利用动态特性

function Person(){};
var person = new Person();
person.name = 'yy';
person.gender = 'girl';
console.log(person.name+','+person.gender);//yy,girl
delete person.name;//删除属性
console.log(person.name);//undefined
// 变式
function Person(){};
var person = new Person();
person['name'] = 'yy';
person['gender'] = 'girl';
console.log(person.name+','+person.gender);//yy,girl
delete person.name;//删除属性
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