JavaScript--总结五(对象)
什么是对象?
现实生活中:万物皆对象,对象是一个具体的事物,一个具体的事物就会有行为和特征。
举例: 一部车,一个手机
车是一类事物,门口停的那辆车才是对象
特征:红色、四个轮子
行为:驾驶、刹车
JavaScript中的对象
JavaScript中的对象其实就是生活中对象的一个抽象
JavaScript的对象是无序属性的集合。
其属性可以包含基本值、对象或函数。对象就是一组没有顺序的值。我们可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数。
对象的行为和特征
特征---属性(添加属性----对象.属性名=值);
事物的特征在对象中用属性来表示。
行为---方法(添加方法----对象.方法名=函数);
事物的行为在对象中用方法来表示。
创建对象的三种方式
1、调用系统的构造函数创建对象
new Object()创建对象
var person = new Object(); person.name = 'lisi'; person.age = 35; person.job = 'actor'; person.sayHi = function(){ console.log('Hello,everyBody'); }
2、工厂模式创建对象
如何获取一个变量(对象)是不是属于什么类型?
语法:变量 instanceof 类型的名字-----结果是布尔类型
this关键字代表当前的对象
如何一次性创建多个对象----把创建对象的代码封装在一个函数中,创建多个对象就调用多次函数
function createObject(name,age,sex){ var person=new Object(); person.name=name; person.age=age; person.sex=sex; person.call=function(){ console.log("我叫"+this.name); } return person; } var per1=createObject("小田","12","nv"); per1.call();
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关键字
构造函数是一种特殊的函数,主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中
var o = { name: 'zs', age: 18, sex: true, sayHi: function () { console.log(this.name); } };
点语法:
对象.名字=值; 对象.名字=函数;
没有什么,点了之后就有了(只要是点了就存在了这个名字--属性或者方法);
1. 代码(变量)只有执行到这个位置的时候,才知道这个变量中到底存储的是什么,如果是对象,就有对象的属性和方法,如果是变量就是变量的作用2. 对象没有什么,只要点了,通过点语法,那么就可以为对象添加属性或者方法
访问属性的另一种写法
function Person(name,age) { this.name=name; this.age=age; this.play=function () { console.log("喜欢玩游戏"); }; } var obj=new Person("卡卡西",20); //obj.name="佐助"; obj["name"]="佐助"; console.log(obj["name"]); obj.play(); obj["play"]();
JSON格式的数据
对象---有属性和方法特指的某个事物
对象---一组无序属性的集合的键值对,属性的值是任意的类型
JSON格式的数据:一般都是成对的,是键值对
JSON也是一个对象,数据都是成对的,一般JSON格式的数据无论是建还是值都是用双引号括起来的
json的数据实际上就是格式化后的一组字符串的数据
遍历对象的属性
通过for...in语法可以遍历一个对象