js学习笔记32----new

new:用于创建一个对象。

有 new 与 无 new 时的区别,查看下面的示例代码应该会增加感觉:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>有 new 的时候</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <script>
           function show(){
               alert(this);
           }
           show(); //弹出 window
           new show(); //弹出 object ,会新创建一个对象
        </script>
    </head>
    <body>
    </body>
</html>

上一篇我们所讲的工厂方式存在的2个缺陷可以能过new来解决,优化后的代码如下:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>new</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <script>  
            function createPerson(name,sex){   //构造函数:创建一个对象
                //假想的系统内部工作流程
                //var this = new Object();

                this.name = name;
                this.sex = sex;

                this.showName = function(){
                    alert('我的名字叫'+this.name);
                }
                this.showSex = function(){
                    alert('我是'+this.sex+'');
                }

                //假想的系统内部工作流程
                //return this;
            }
            var p1 = new createPerson('sese',''); 
            var p2 = new createPerson('JJ','');
            p1.showName();
            p1.showSex();
            p2.showName();
            p2.showSex();         
        </script>
    </head>
    <body>
    </body>
</html>
原文地址:https://www.cnblogs.com/sese/p/7414365.html