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