当前位置:网站首页>JS学习笔记04-05——构造函数的修改以及使用工厂方法创建
JS学习笔记04-05——构造函数的修改以及使用工厂方法创建
2022-07-17 07:28:00 【那人独钓寒江雪.】
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script> //函数作用域 function Person(name, age, gender, address) {
this.name = name;
this.age = age;
this.gender = gender this.address = address this.fun = function () {
alert(this.name + this.gender + this.age + this.address);
};
};
//使用instanceof可以检查一个对象是否是一个类的实例
//console.log(per instanceof Person); 返回true或者false
var per = new Person("雷云腾", "男", 19, "乐山市");
console.log(per) //上面的构造函数每一次都会创建一个新的方法,执行n次会创建n个一模一样的方法,完全可以使所有的对象共享同一个方法 function Person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
//向对象中添加一个方法
this.sayName = fun;
}
//将sayName方法在全局作用域中定义 function fun() {
alert("Hello大家好,我是:" + this.name)
};
//创建一个Person对象
var person = new Person("雷云腾", 19, "男");
console.log(person);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script> // var obj={
// name:"孙悟空", // age:38, // gender:"男", // sayName:function(){
// alert(this.name+this.age+this.gender)
// }
// }
// //调用函数
// obj.sayName();
//使用工厂方法创建对象 //通过该方法可以大批量的创建对象 // function createPerson(name,age,gender){
// //创建一个新的对象
// var obj=new Object();
// //向对象中添加属性
// obj.name=name;
// obj.age=age;
// obj.gender=gender;
// obj.sayName=function(){
// alert(this.name+this.age+this.gender);
// };
// return obj;
// }
// var obj2=createPerson("白骨精",28,"男");
// console.log(obj2);
function createPeople(name, age, address, gender, job) {
//创建一个对象
var obj2 = Object();
obj2.name = name;
obj2.age = age;
obj2.address = address;
obj2.gender = gender;
obj2.job = job;
obj2.fun = function () {
alert("名字为:" + this.name + "年龄为:" + this.age + "地址:" + this.address + "性别:" + this.gender + "工作:" + this.job)
}
//将新的对象返回
return obj2;
};
var obj3 = createPeople("雷云腾", 19, "乐山市", "男", "学生");
console.log(obj3) //构造函数首字母通常大写 使用this调用不用设置返回值 function Person(name, age, gender, address) {
this.name = name;
this.age = age;
this.gender = gender this.address = address this.fun = function () {
alert(this.name + this.gender + this.age + this.address);
};
};
//使用instanceof可以检查一个对象是否是一个类的实例
//console.log(per instanceof Person); 返回true或者false
var per = new Person("雷云腾", "男", 19, "乐山市");
console.log(per)
</script>
</head>
<body>
</body>
</html>
边栏推荐
- Interview question: outer margin folding problem (bug of block level elements in ordinary document flow)
- [C# 变量常量关键字]- C# 中的变量常量以及关键字
- From the casino logic, analyze the investment value of platform currency 2020-03-03
- Complete square number
- Sword finger offer 42 Maximum sum dynamic programming method for continuous subarrays
- 网传USDT和USDC要做空?带你一探究竟 | Tokenview
- SCA在得物DevSecOps平台上应用
- MySQL 2502 2503 error
- OI回忆录
- 5G正当时,无人驾驶未来将驶向何方?
猜你喜欢
随机推荐
Consul服务注册与发现
Redis6新数据类型——HyperLogLog
写代码遇到Qt相关问题
Local storage sessionstorage
Excellent résumé! Enfin quelqu'un a compris toutes les connexions SQL
5.2 database security
Unity custom sky ball model to prevent it from being cropped
Deep learning 7 deep feedforward network
Visual studio production environment configuration scheme: slowcheetah
[kernel] character device that drives development and learning
3D laser slam:aloam --- interpretation of inter frame odometer code
Eureka自我保护
Redis新数据类型——Bitmaps
C#对txt文件的读写操作
网传USDT和USDC要做空?带你一探究竟 | Tokenview
Great summary! Finally, someone explained all kinds of SQL join connections clearly
Demo collection injection
Redis master-slave replication
The website vulnerability repair service provider analyzes the ultra vires caused by controllable parameters
leetcode:287. Find the repetition number [fast and slow pointer board]








![[kernel] character device that drives development and learning](/img/99/2eaed37078c3245be29d82382cfd59.png)
