对象是一个具体的事物。
在JS中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象由属性和方法组成。
属性:事物的特征(名词)
方法:事物的行为(动词)
创建对象(object)的三种方式:1.利用字面量创建对象
var obj={
name:XY,
age:21,
sex='男',
sayHi:function() {
console.log('帅呀');//匿名函数
}
}
//利用字面量创建对象
//var obj = {};
var dog = {
name: '可可',
type: '阿拉斯加犬',
age: 5,
color: 'red',
bark: function() {
console.log('一技能汪汪汪');
},
showFilm: function() {
console.log('二技能演电影');
}
}
dog.bark();
调用对象属性两种方法:①对象名.属性名 例:obj.name; ②对象名['属性名'] 例:obj['name'];
调用对象方法:对象.方法名() 例:obj.sayHi();
变量属性函数方法的区别:
变量和属性相同于:都是用来存储数据的。不同于:变量单独声明并赋值,使用时直接写变量名,单独存在。属性在对象里面的不需要声明,使用的时候必须是对象名.属性名或对象名['属性名']。
函数和方法相同于:都是实现某种功能,做某件事。 不同于:函数是单独声明并调用的。方法在对象里面调用的时候 对象.方法()。
2.利用new Object创建对象
//利用new Object()创建对象
var obj = new Object();
obj.name = '鸣人';
obj.sex = '男';
obj.age = 19;
obj.skill = function() {
console.log('影分身术');
}
obj.skill();
3.利用构造函数创建对象
//构造函数创建对象
//例如我们需要创建四大天王的对象 相同的属性:名字 年龄 性别 相同的方法:唱歌
function Star(uname, sex, age) {
this.name = uname;
this.sex = sex;
this.age = age;
this.sing = function(song) {
console.log(song);
}
}
var ldh = new Star('刘德华', '男', 50); //调用函数返回的是一个对象
console.log(ldh);
console.log(ldh.name);
ldh.sing('冰雨');
var yyqx = new Star('易烊千玺', '男', 20);
console.log(yyqx);
console.log(yyqx.sex);
yyqx.sing('离骚');
//1.构造函数名字首字母要大写
//2.构造函数不需要return就可以返回结果
//3.调用构造函数必须使用new
//4.只要new Star()调用函数就创建一个对象
//5.属性方法前面必须加this
//来练练撒,利用构造函数创建两个英雄对象
function Hero(name, type, blood) {
this.name = name;
this.type = type;
this.blood = blood;
this.attack = function(apc) {
console.log(apc);
}
}
var fhh = new Hero('凤凰火', '肉型', 500);
console.log(fhh);
fhh.attack('远程');
var qxd = new Hero('青行灯', '脆了吧唧', 800);
console.log(qxd);
qxd.attack('远程');
//遍历对象
var obj = {
name: 'XY',
age: 23,
sex: '男',
sayHi: function() {
console.log('XY好帅');
}
}
for (var k in obj) {
console.log(k); //k 变量 输出得到的是属性名
console.log(obj[k]); //obj[k]得到是属性值
}
//使用for in 里面的变量我们常用k或者key
遍历对象属性:for···in···用于数组或对象的属性进行循环操作