/*创建对象的三种方式
2.3利用构造函数的创建对象
构造函数:是一种特殊的函数 , 主要用来初始化对象, 即为对象称为变量赋初始值, 它总与new 运算符一起
使用.我们可以把对象中一些公告的属性和方法抽取抽取出来, 然后封装到这个函数里面
*/
// 利用构造函数创建对
// 我们需要创建四大天王的对象 相同的属性 : 名字 年龄 性别 相同的方法 : 唱歌
// 构造函数的语法格式
// function 构造函数名() {
// this.属性 = 值;
// thiss.方法 = function () {}
// }
// nwe 构造函数名();
// function Star(uname , age , sex) {
// this.name = uname;
// this.age = age;
// this.sex = sex;
// this.sing = function(geq) {
// console.log(geq)
// }
// }
// var ldh = new Star("刘德华","年龄18","性别男"); //调用函数返回的是一个对象
// // console.log(typeof ldh);
// console.log(ldh.name);
// console.log(ldh.age);
// console.log(ldh.sex);
// ldh.sing("歌曲忘情水");
// var zxy = new Star("张学友","年龄19","性别男")
// console.log(zxy.name);
// console.log(zxy.age);
// console.log(zxy.sex);
// zxy.sing("歌曲吻别");
// var zxy = new Star("黎明","年龄19","性别男")
// console.log(zxy.name);
// console.log(zxy.age);
// console.log(zxy.sex);
// var zxy = new Star("郭富城","年龄19","性别男")
// console.log(zxy.name);
// console.log(zxy.age);
// console.log(zxy.sex);
// 1.构造函数的首字母要大写
// 2.我们构造函数不需要return 就可以返回结果
// 3.我们调用构造函数必须使用new
// 4.我们只要new Star()调用函数就创建一个对象 ldh {}
// 5.我们的属性和方法前面必须添加this
// 练习 :请按照要求创建对象
// 利用构造函数创建连个英雄对象.函数中的公告部分包括: 姓名属性(name),类型属性(type),血量属性
// (blood)和根据方式(attack).
// 英雄对象的信息如下:
// 廉颇 力量型 500血量 攻击 : 近战
// 后裔 射手型 100血量 攻击 : 远程
function Yingx(uname , type , blood ) {
this.name = uname
this.type = type
this.blood = blood
this.attack = function(attack) {
console.log(attack)
}
}
var lp = new Yingx("廉颇" , "力量型" , "500血量" )
console.log(lp.name)
console.log(lp.blood)
console.log(lp.type)
lp.attack("近战")
var hy = new Yingx("后羿" , "射手型" , "100血量" )
console.log(hy.name)
console.log(hy.blood)
console.log(hy.type)
hy.attack("远程")