构造函数

 工厂方法创建一个DOG的函数示例

        function dog(name,age){
                 var obj = {
                    name:name,
                     age:age,
                     saysth:function() {
                         alert(this.name + "喊汪汪")
                     }
                 }
                 return obj
             }
             var obj1 = dog("虚线",333)
             console.log(obj1)
             obj1.saysth()

上述的工厂方法创建的对象使用的构造函数都是Object

缺点就是导致无法区分多种类型的对象,所以需要用到构造函数

            function person(){
                this.name = "孙悟空"//2.将新建的对象设置为函数中的this
                this.age = 18
                this.sayname = function(){
                    alert(this.name)//逐行执行函数代码
                }
            }
            var per = new person()    ;
            /*
             1.var per = person()是调用函数,而加个NEW则是创建对象
             */
            per.sayname() //4.将新建函数作为返回值返回

加入形参后

            function person(name,age){
                this.name = name//2.将新建的对象设置为函数中的this
                this.age = age
                this.sayname = function(){
                    alert(this.name)//逐行执行函数代码
                }
            }
            var per = new person("孙悟空",18)    ;
            var per1 = new person("猪八戒",22)
            /*
             1.var per = person()是调用函数,而加个NEW则是创建对象
             */
            per.sayname() //4.将新建函数作为返回值返回
            console.log(per1)

使用同一个构造函数创建的对象为同类对象,同理也可以创建一个var dog = new dog()

 使用instanceof可以检查一个对象是否是一个类的实例,类就是构造函数,

语法: 对象 instanceof 构造函数,如果是则为True,否为false

console.log(per instanceof person)

原文地址:https://www.cnblogs.com/Young-shi/p/10440894.html