创建对象的三种方式:
1.利用字面量创建对象;
2.利用 new object 创建对象;
3.利用构造函数创建对象;
------利用字面量创建对象
对象自变量:就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法
<script>
var obj = {
uname:'刘德华',
age:18,
sex:'男',
SayHi:function(){
console.log('hi~');
}
}
</script>
注:1.里面的属性或者方法我们采取键值对的形式(键 属性名:值 属性值)
2.多个属性或者方法中间用逗号隔开的
3.方法冒号后面跟的是一个匿名函数
使用对象-----法一:调用对象的属性名,我们采取对象名.属性名
法二: 对象名【'属性名'】
<script>
var obj = {
uname:'刘德华',
age:18,
sex:'男',
SayHi:function(){
console.log('hi~');
}
}
console.log(obj.uname);
// 法一
console.log(obj['age']);
// 法二
</script>
调用对象的方法:
<script>
var obj = {
uname:'刘德华',
age:18,
sex:'男',
SayHi:function(){
console.log('hi~');
}
}
console.log(obj.uname);
// 法一
console.log(obj['age']);
// 法二
obj.SayHi();
// 调用对象-----hi~
</script>
对象名(obj)+方法名
注:千万不能忘记添加小括号
-----------利用 new Object 创建对象;
<script>
obj = new Object();
// 创建一个空的对象
obj.uname = '郭富城';
obj.age = 20;
obj.sex = '男';
obj.sayHi = function(){
console.log('hi~');
}
console.log(obj.uname);
// 调用函数
</script>
注:1.利用等号赋值的方法,添加对象的属性和方法;
2。每个方法和属性之间用分号;结束。
-----------利用构造函数创建对象;
前言:前面两种创建对象的方式一次只能创建一个对象,因此会特别繁琐,因此可以利用函数的方法重复这些相同的代码,这个函数成为构造函数
构造函数:把对象里面一些相同的属性和方法抽象出来封装函数里
语法:
function 构造函数名(写参数){
this.属性 = 值;
this.方法 = function(){}
}
new 构造函数名();
例:
<script>
function Star(uname,age,sex){
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(song){
console.log(song);
}
}
var ldh = new Star('刘德华',18,'男');//调用函数返回的是一个对象
var zxc = new Star('周星驰',19,'男');
ldh.sing('冰雨')
// 冰雨的值给到song,然后通过console.log输出
console.log(ldh.name);
console.log(zxc.name);
</script>
注: 1.构造函数的函数名首字母为大写
2.构造函数不需要return就可以返回结果
3.我们构造函数必须使用new
4.我们只要 new Star()调用函数就可以创建一个对象ldh{}
5.我们属性和方法前面必须添加this
案例
<script>
function Hero(name, type, blood){
this.name = name;
this.type = type;
this.blood = blood;
this.gj= function (attack) {
console.log(attack);
}
}
var hero1 = new Hero('廉颇','力量型',500);
var hero2 = new Hero('后羿', '射手型', 100);
console.log(hero1.name);
console.log(hero1.type);
console.log(hero1.blood);
hero1.gj('近程');
console.log(hero2.name);
console.log(hero2.type);
console.log(hero2.blood);
hero2.gj('远程');
</script>
遍历对象属性
<scipt>
// 对象的遍历
// for(变量 in 对象){
// }
for(var s in ldh){
console.log(s);
// 输出得到的是属性名
console.log(ldh[s]);
// 输出得到的是属性值
}
</script>