字面量方法创建对象
字面量对象中的属性名+引号问题
<code>
var girlFriend = {
name:"二雷",
"name": "二雷",
'name': "二雷",
//以上写法都是可以的,一般我们不建议给属性名加引号。但是以下几种情况必须加引号
/*
*1、当属性名是JS中的保留字时必须加引号
*2、当属性名中存在空格或者其他特殊字符串时必须加引号
*3、当属性民以数字开头时必须加引号
*/
};
</code>
访问对象的两种方法
<code>
girlFriend.height //方法一:点语法
girlFriend["name"] //方法二:中括号法
两种方法的区别:一般我们建议使用点语法,因为点语法简单易懂。但是不符合标识符原则的属性名不能使用点语法。
</code>
动态给对象添加属性与动态删除对象属性
<code>
girlFriend.faceValue = 100; //添加对象属性
delete girlFriend.weight; //删除对象属性
delete girlFriend.eat; //删除对象行为
</code>
工厂模式创建对象
使用工程模式可以快速、大量的创建拥有相同属性和行为的对象
<code>
function createGirlFriend(a){
return {
name: a,
eat: function(){
console.log("吃");
}
};
}
var girl1 = createGirlFriend("二雷");
var girl2 = createGirlFriend("三雷");
</code>
构造函数法创建对象
<code>
function GirlFriend(name, age, height, weight) {
//属性
this.name = name;
this.age = age;
this.height = height;
this.weight = weight;
//函数内部普通变量看成是对象的私有属性(外部无法访问)
//可以通过中间函数间接访问
var _money = 10000000;
this.setMoney = function(money) {
_money = money;
};
this.getMoney = function(){
return _money;
};
this.eat = function() {
console.log(this.name + "吃");
console.log(_money);
};
}
</code>
添加静态方法(类方法)
//由构造函数名调用
//给构造函数添加的方法叫做静态方法
GirlFriend.staticFunc = function() {
console.log("我是静态函数");
};
//调用静态函数
GirlFriend.staticFunc();