zoukankan      html  css  js  c++  java
  • js参考---构造函数修改

    js参考---构造函数修改

    一、总结

    一句话总结:

    解决构造函数中方法重复创建多次可以把方法放在全局中,但是这样会污染全局变量以及不安全,所以 可以将方法添加的原型中

    二、构造函数修改

    博客对应课程的视频位置:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             /*
     8              * 创建一个Person构造函数
     9              *     - 在Person构造函数中,为每一个对象都添加了一个sayName方法,
    10              *         目前我们的方法是在构造函数内部创建的,
    11              *             也就是构造函数每执行一次就会创建一个新的sayName方法
    12              *         也是所有实例的sayName都是唯一的。
    13              *         这样就导致了构造函数执行一次就会创建一个新的方法,
    14              *             执行10000次就会创建10000个新的方法,而10000个方法都是一摸一样的
    15              *             这是完全没有必要,完全可以使所有的对象共享同一个方法
    16              */
    17             function Person(name , age , gender){
    18                 this.name = name;
    19                 this.age = age;
    20                 this.gender = gender;
    21                 //向对象中添加一个方法
    22                 //this.sayName = fun;
    23             }
    24             
    25             //将sayName方法在全局作用域中定义
    26             /*
    27              * 将函数定义在全局作用域,污染了全局作用域的命名空间
    28              *     而且定义在全局作用域中也很不安全
    29              */
    30             /*function fun(){
    31                 alert("Hello大家好,我是:"+this.name);
    32             };*/
    33             //向原型中添加sayName方法
    34             Person.prototype.sayName = function(){
    35                 alert("Hello大家好,我是:"+this.name);
    36             };
    37             
    38             //创建一个Person的实例
    39             var per = new Person("孙悟空",18,"");
    40             var per2 = new Person("猪八戒",28,"");
    41             per.sayName();
    42             per2.sayName();
    43             
    44             //console.log(per.sayName == per2.sayName);
    45             
    46             
    47         </script>
    48     </head>
    49     <body>
    50     </body>
    51 </html>
     
  • 相关阅读:
    Windows删除git本地记住的密码
    C++ fmt库的安装和测试
    仿照struct is_integral 实现struct not_int
    folly库net库udp小例子
    Java阻塞队列BlockingQueue
    正则表达式必知必会摘要
    正则表达式匹配IP地址
    SimpleDateFormat线程安全性测试与解决方案
    Java8 HashMap中哈希桶(table)数组的索引位置
    socket网络编程--基础应用篇
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12432404.html
Copyright © 2011-2022 走看看