创建对象
1)直接new一个关键字
var obj = new Object();
2)对象字面量
2.1 简单字面量
var obj2 = {};
obj2.name = "ben";
obj2.todo = function() { }
2.2 嵌套字面量
var obj3 = {
name: 'xiaoming',
age : 23,
todo: function(){
console.log(this.name);
},
address: 'GZ'
}
类似于键值对 key = value
key 什么时候需要引号
名字里面有空格 连字付 保留字
函数声明和函数表达式
函数声明: funciton add1(){ }
函数表达式: var add2 = function(){ }
二者区别,函数声明可以先调用后声明;函数表达式需要先声明后调用
3)构造函数
特点:构造函数的首字母大写
创建构造函数
例:function Person(name,age){
this.name = name,
this.age =age
this.todo =function(){
return this.name
}
}
实例化对象(可以实例化多个)
var person = new Person(‘xiaoming’,20);
var person1 = new Person("xiaoming2", 30);
打印:console.log(person.name) => xiaoming
this指向实例化以后的person
普通函数
例: function funName() { return name;} ==> funName("xiaoming");
工厂模式
function person1(){
var obj = new Object();
obj.name = name;
obj.age = age;
return obj;
}
var a1 = person1("xiaoming", 26 );
构造函数和普通函数的区别
1,this的指向不同:构造函数指向实例化以后的名字,普通函数是谁调用,就指向谁
2,调用方式不同
3,构造函数名字需要大写,普通函数标准写法是小驼峰(funName)