面向对象之对象的创建方式
1.new操作符
var person = new Object();
person.name = "缘灭";
person.age = 18;
2.对象字面量形式(推荐)
var person = {
name : "缘灭",//如果健名中包含空格,连接符-或者关键字保留字,则需要加上引号
age : 18
};
3.构造函数方式
function Person(name, age, job) { //大写
//var this = {} 隐式的创建一个空对象
this.name = name;//this指向的是实例对象person1
this.age = age;
this.sayName = function () {
alert(this.name);
};
//return this 最后再把这个对象返回出去
}
var person1 = new Person("缘灭", 18);//实例化,person1为构造函数Person的实例对象。
console.log(person1.name)//缘灭
构造函数和普通函数的区别:
1.this指向:构造函数this指向的是实例对象,普通函数this指向的是函数的调用者。
2.调用方式:构造函数需要用new关键字调用,普通函数直接调用就行
3.命名:构造函数首字母需要大写,普通函数一般采用驼峰式命名
4.工厂模式
function createPerson(name, age, job){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayName = function(){
alert(this.name);
};
return obj;
}
var person1 = createPerson("Nicholas", 29);
person1.sayName(); //"Nicholas"