<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Object JavaScript</title>
<script type='text/javascript' charset="utf-8">
//第一种工厂模式方法
function createPerson(name,age,sex) {
var o = new Object();
o.name = name;
o.age = age;
o.sex = sex;
o.say = function () {
document.write(o.name + '<br>')
}
return o;
}
var p = createPerson('Li4',23,'M');
p.say();
//第二张构造函数
//函数的第一个字母大写 (类的模版)
function Person(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.sayHi = function(){
document.write('Hello i\'m,' + this.name + '<br>');
}
}
//new 构造一个对象 传递参数
pp = new Person('Z3',22,'M');
pp.sayHi();
//创建对象的三种方法
document.write('创建对象的三种方法' + '<br>');
//1.当作构造函数来使用
var p1 = new Person('name1',11,'W');
p1.sayHi();
//2.作为普通的函数区调用
Person('name2',22,'M'); //调用者式window,在全局环境中定义属性并复制 直接定义在window上
//3.在另一个对象的作用域上调用
var o = new Object();
//call apple
Person.call(o,'name3',23,'W');
document.write(o.name + '<br>');
</script>
</head>
<body>
</body>
</html>