对象的创建方式:1.new Object()创建对象 例如
var person = new Object();
person.name = 'lisi';
person.age = 35;
person.job = 'actor';
person.sayHi = function(){
console.log('Hello,everyBody');
}
2.工厂函数创建对象 实例:
function createPerson(name, age, job) {
var person = new Object();
person.name = name;
person.age = age;
person.job = job;
person.sayHi = function(){
console.log('Hello,everyBody');
}
return person;
}
var p1 = createPerson('张三', 22, 'actor');
3.自定义构造函数 例如:
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayHi = function(){
console.log('Hello,everyBody');
}
}
var p1 = new Person('张三', 22, 'actor');
函数的属性: 如果一个变量属于一个对象所有,那么该变量绝可以称之为该对象的的一个属性,这个属性一般是用来描述事物的特征的名词。
函数的方法:同上,如果一个函数属于一个对象所有,那么该函数就可以称之为该对象的一个方法,这个方法一般是用来描述事物的行为和功能的动词。
new关键字:1.构造函数用于创建一个新的空对象。
2.构造函数要和new一起使用才有意义 【new在执行时会做四件事情:1.new会在内存中创建一个新的空对象
2.new会让this指向这个新对象
3.执行构造函数 目的:给这个新对象加属性 和方法
4.new会返回这个新对象】
this的四个特点:1.函数在定义的时候this是不确定的,只有在调用的时候才可以确定
2.一般函数直接执行,内部this指向全局window。
3.函数作为一个对象的方法,被该对象所调用,那么this指向的是该对象
4.构造函数中的this其实是一个隐式对象,类似一个初始化的模型,所有方法和属性都挂载到了这个隐式对象身 上,后续通过new关键字来调用,从而实现实例化
遍历对象的属性:可以通过for..in语法可以遍历一个对象 例如:
var obj = {};
for (var i = 0; i < 10; i++) {
obj[i] = i * 2;
}
for(var key in obj) {
console.log(key + "==" + obj[key]);
}
简单类型和复杂类型的区别:
基本类型又叫做值类型,复杂类型又叫做引用类型。
值类型:简单数据类型,基本数据类型,在存储时,变量中存储的是值本身,叫做值类型
引用类型:复杂数据类型。在存储是变量中存储的仅仅是地址(引用),叫做引用数据类型