05.对象.html 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. <script>
  9. /*
  10. 创建一个对象
  11. */
  12. var obj = {
  13. name: "孙悟空",
  14. age: 28,
  15. gender: "男",
  16. sayName: function () {
  17. alert(this.name);
  18. }
  19. };
  20. /*
  21. 使用工厂方法创建对象
  22. 通过该方法可以大批量的创建对象
  23. */
  24. function createPerson(name, age, gender) {
  25. //创建一个新的对象
  26. var obj = new Object();
  27. //向对象中添加属性
  28. obj.name = name;
  29. obj.age = age;
  30. obj.gender = gender;
  31. obj.sayName = function () {
  32. console.log(this.name);
  33. };
  34. //将新的对象返回
  35. return obj;
  36. }
  37. var obj2 = createPerson("孙悟空", 28, "男");
  38. var obj3 = createPerson("二师兄", 38, "男");
  39. var obj4 = createPerson("沙师弟", 48, "男");
  40. console.log(obj2);
  41. console.log(obj3);
  42. console.log(obj4);
  43. // obj2.sayName();//输出结果为“孙悟空”
  44. // obj3.sayName();//输出结果为“二师兄”
  45. // obj4.sayName();//输出结果为“沙师弟”
  46. /*
  47. 使用工厂方法创建的对象,使用的构造函数都是Object
  48. 所以创建的对象都是Object这个类型,
  49. 就导致我们无法区分出多种不同类型的对象
  50. */
  51. //创建一个狗的对象
  52. function createDog(name,gender){
  53. var obj = new Object();
  54. obj.name = name;
  55. obj.gender = gender;
  56. obj.sayDog = function(){
  57. console.log("都是汪汪队~~");
  58. };
  59. return obj;
  60. }
  61. var dog = createDog("旺财","公狗");
  62. console.log(dog);
  63. </script>
  64. </head>
  65. <body>
  66. </body>
  67. </html>