<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//这是一个函数,也是一个"函数对象"
// function Person() {
// }
//第一种方式:
//对于Person函数可以直接调用。
//例如:
//Person();
//第二种方式:把Person函数当作 类 来使用 , 通过Person函数创建一个Person类型的对象p
//当调用Person函数前加 new 关键字,表示要通过Person()函数创建一个对象。
//此时,一般把Person()函数叫做 “构造函数”,如果定义一个函数,要作为“构造函数”, 函数的命名就要使用 "帕斯卡"法(每个单词的首字母大写)
//如果只是定义函数为 “普通函数” 则用 “驼峰命名法”
function Person() {};
var p = new Person();
console.log(p);
p.user_name = '小明';
p.user_age = 18;
p.user_email = '123456789@qq.com';
p.user_address = '中华人名共和国';
p.sayHi = function () {
console.log('大家好, 我叫:' + this.user_name + ' , 今年' + this.user_age + '岁' + ' , 我来自:' + this
.user_address);
}
p.sayHi();
//创建第二个对象
var p1 = new Person()
//通过构造函数来创建对象
function Person1(name, age, email) {
this.user_name = name;
this.user_age = age;
this.user_email = email;
this.sayHello = function () {
console.log('大家好, 我叫:' + this.user_name + ' , 今年' + this.user_age + '岁' + ' , 我的邮箱是:' + this
.user_email);
}
};
var person1 = new Person1('小红', '20', '789456123@qq.com');
person1.sayHello();
//对象也是键值对的集合 , 所以也可以进行遍历
console.log(person1.user_name);
console.log(person1['user_age']);
for (var key in person1) {
console.log('键:' + key + ' ------ 值:' + person1[key]);
}
//通过 对象 instanceof 类型(构造函数名称) , 就可以判断一个对象是否是某个类型
console.log('person1 是否 Person1 类型 ' + String(person1 instanceof Person1));
console.log('person1 是否 Date 类型 ' + String(person1 instanceof Date));
console.log('person1 是否 Object 类型 ' + String(person1 instanceof Object));
//通过对象字面量来直接创建对象
var p1 = {
user_name: '小红',
user_age: 18,
user_email: 'xiaohong@163.com',
sayhi: function (){
console.log('hi 我是:' + this.user_name);
},
say_hello:function (){
console.log('hello 我今年:' + this.user_age);
}
};
p1.sayhi();
p1.say_hello();
</script>
</head>
<body>
</body>
</html>