对象 (object)
《1》 为什么要用对象?
函数的参数如果特别多,可以使用参数简化。
《2》 js中对象的分类:
1 内建对象;2 宿主对象:B0M对象,DoM对象;3 自定义对象:我们自己创建的对象。
《3》常见创建对象方式:
1 对象字面量,2 new object()创建新对象,3 工厂函数创建对象,4 自定义构造函数《更多都使用》。
// 2 对象字面量
var x1={
//属性
name:'小撩',
age:24,
sex:'女',
//行为
doIt:function () {
console.log('我是扛把子!');
}
};
console.log(x1);
console.log(typeof x1);
// 3.2 new Object()创建对象
var x1=new Object();
x1.name='小撩';
x1.age=24;
x1.sex='女';
console.log(x1);
console.log(typeof x1);
// 3.3 工厂创建对象
function createPerson(name,age,sex) {
var p=new Object();
p.name=name;
p.age=age;
p.name=sex;
p.doIt=function () {
console.log('我会写代码哟');
}
return p;
};
var xl=createPerson('小撩',20,'女');
var dl=createPerson('大撩',30,'女');
console.log( xl);
console.log( dl);
// console.log(xl === dl);
// 3.4 自定义构造函数
function person(name,age,sex) {
this.name=name;
this.age=age;
this.sex=sex;
this.doIt=function () {
console.log('我会写代码哟');
}
}
var dl=new person('大撩',30,'女');
var xl=new person('小撩',20,'女');
console.log(dl, xl);
console.log(dl === xl);
《4》new关键词
《1new先在内存中创建一个新的空对象
《2new会让this指向这个新对象
《3执行构造函数,给这个新对象加属性和方法
《4返回这个新对象
《5》this关键词
1》普通函数执行,内部this指向全局对象window
2》函数在定义的时候this是不确定的,只有在调用的时候才可以确定
3》如果函数作为一个对象的方法,被该对象所调用,那么函数内的this则指向该对象
4》构造函数中的this是一个隐式对象,类似一个初始化的模型,所有方法和属性都挂载到了这个隐式对象身上,
后续通过new关键字来调用,从而实现实例化。
《6》对象使用
1 遍历对象的属性<for...in...>
2 删除对象的属性<delete>
《7》
// <1基本数据类型在内存中的存储
var str1='小撩' ;
var str2=str1;
str1='itlike';
console.log(str1);//itlike
console.log(str2);//小撩
//<2基本数据类型在内存中的存储
function person(name,age,intro) {
this.name=name;
this.age=age;
this.inyro=intro;
}
var p1=new person('小撩',30,'like it,it like!')
var p2=p1;
p1.name='大撩';
console.log(p2.name);// 大撩
console.log(p1 === p2);
// <3 基本类型作为函数的参数
var num1=10;
var num2=20;
fn(num1,num2);
console.log(num1, num2);
function fn(n1,n2) {
n1*=2;
n2/=2;
console.log('n1=' + n1);//20
console.log('n2=' + n2);// 10
}
// <4复杂类型作为函数的参数
// function person(name,age,sex) {
// this.name=name;
// this.age=age;
// this.sex=sex;
// }
/**
* 普通函数
* @param (person)person
*/
function func(person) {
person.name='权志龙';
}
var p=new person('小撩',30,'男');
console.log(p.name);//小撩
func(p);
console.log(p.name);// 权志龙
js中对象篇的总结。