函数跟对象的区别:
函数:可以封装一段代码
对象:封装一组属性跟方法
对象的行为和特征:
特征—属性
行为—方法
事物的特征在对象中用属性来表示
事物的行为在对象中用方法来表示
对象创建方式:
1. 字面量:
var o = {
name:’zs’,
age: 18,
sayHi: function () {
console.log(this.name);
}
}
2. new Object ()创建对象
var person = new Object ();
person.name = ‘lisha’;
person.age = 35;
person.sayHi = function () {
console.log(‘hello’);
console.log(this.name);
person.sayHi();
3.工厂构造函数对象
function createPerson(name,age,job) {
var person = new Object ();
person.name = name;
person.age = age;
person.job = job;
person.sayHi = function () {
console.log(‘hello’);
}
return person;
}
var p1 = createPerson(‘张三’, 22, ‘sayHi’)
function person (name, age, job) {
this.name = name;
this.age = age;
person.job = job;
person.sayHi = function () {
console.log(‘hello’);
}
var p1 = new Person(‘张三’, 22, ‘actor’);
属性和方法
如果一个变量属于一个对象所有,那么该变量就可以称之为该对象的一个属性,属性一般是名词,用来描述事物的特征
如果一个函数属于一个对象所有,那么该函数就可以称之为该对象的一个方法,方法是动词,描述事物的行为和功能
new 关键字:在执行过程中会做如下四件事:
1 new会在内存中创建一个新的空对象。
2 new 会让this指向这个新的对象
3 执行构造函数:目的:给这个新对象加属性跟方法
4 new 会返回这个新对象
this出现的位置跟指向:
1 函数中—— this指向window
2 在方法中 — this指向的是这个方法所属的对象
3 构造函数中 — this指向 构造函数创建的对象
遍历对象的属性;
通过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]);
}
删除对象
function fun() {
this.name = ‘name’;
}
var obj = new fun();
console.log(obj.name);
delete obj.name;
console.log(obj.name);