万物皆对象
现实生活中:万物皆对象,对象是一个具体的事物,一个具体的事物就会有行为和特征。
举例: 一部车,一个手机
车是一类事物,门口停的那辆车才是对象
特征:红色、四个轮子
行为:驾驶、刹车
JavaScript中的对象其实就是生活中对象的一个抽象
JavaScript的对象是无序属性的集合。
其属性可以包含基本值、对象、数组或函数。
对象就是一组没有顺序的值。
我们可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数。
对象的行为和特征
特征---属性
行为---方法
事物的特征在对象中用属性来表示。
事物的行为在对象中用方法来表示。
属性和方法统称为对象的成员。
new关键字和构造函数
构造函数 ,是一种特殊的函数,又叫做函数构造器。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
JavaScript中的this指向问题,比较复杂,有时候会让人难以捉摸,随着学习的深入,我们会不断接触this, 在学习过程中,我们可以不断总结,最终搞清楚this在何种情况下指向何处…… 目前,我们只需要记住以下两点就可以了: 1: 函数如果在某个对象下,this就指向这个对象 2: 函数如果被直接调用,this指向window对象
var o1 = {
name: '山治',
f: function () {
console.log(this.name);
}
}
o1.f(); // 山治
function f(){
console.log(this);
}
f();
console.log(window);
对象.方法名(); //调用对象的方法
对象.属性; //获取对象的属性
通过for…in语法可以遍历一个对象
var obj1 = {
name:'路飞',
age : 17,
sex : '男',
}
for(var k in obj1){
console.log(k);
console.log(obj1[k]);
}
注意:使用for …in语法,同样可以遍历数组 注意:如果属性名或方法名,是一个变量,则使用对象[变量名] 语法
var obj1 = {
name:'路飞',
age : 17,
sex : '男',
}
console.log(obj1.age); //17
delete obj1.age; //删除对象中指定的属性
console.log(obj1.age); // undefined
总结: 创建对象有三种方式,字面量、new内置构造函数及自定义构造函数;对象中有属性及方法,this指向当前对象,使用 . (点) 语法调用属性及方法;