08.对象创建模式_工厂模式.html 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <!--
  11. 方式三:工厂模式
  12. *套路:通过工厂函数动态创建对象并返回
  13. *适用场景:需要创建多个对象
  14. *问题:对象没有一个具体的类型,都是object类型
  15. -->
  16. <script>
  17. function createPerson(name,age){//返回一个对象的函数都可以成为工厂函数
  18. var obj = {
  19. name:name,
  20. age:age,
  21. setName:function(name){
  22. this.name = name
  23. }
  24. }
  25. return obj
  26. }
  27. //创建2个人
  28. var p1 = createPerson('孙悟空',22)
  29. var p2 = createPerson('二师兄',32)
  30. //p1、p2都是object类型
  31. console.log(p1,p2)
  32. function createStudent(name,price){
  33. var obj = {
  34. name:name,
  35. price:price,
  36. }
  37. return obj
  38. }
  39. var s = createStudent('张三',800)
  40. //s是object类型
  41. </script>
  42. </body>
  43. </html>