欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS中函数的四种创建方法

程序员文章站 2022-03-22 10:41:34
知道的四种创建方法:[1] 字面量创建 简单快速,不适合批量的创建对象var o1 = {}; //空对象 var o2 = { name: "zs", age: 19 }[2] 内置构造函数(Object)var personA = new Object(); //空对象 var obj1 = {} personA.name = "zs"; personA.age = 100;...

知道的四种创建方法:

[1] 字面量创建 简单快速,不适合批量的创建对象

var o1 = {}; //空对象
        var o2 = {
            name: "zs",
            age: 19
        }

[2] 内置构造函数(Object)

var personA = new Object(); //空对象 var obj1 = {}
        personA.name = "zs";
        personA.age = 100;
        personA.price = 5000;

[3] 工厂函数来创建 : 对内置构造函数(Object)方式封装,解决了代码复用的问题
问题:无法区分对象的类型

function createPerson(name, age, price) {
            var personA = new Object();
            personA.name = name;
            personA.age = age;
            personA.price = price;
            personA.showName = function() {
                console.log("姓名:" + this.name);
            }
            return personA;
        }
        var d1 = createDog("wc", 3, 20000);
        console.log(d1);

[4]自定义构造函数:是对工厂函数进行封装(提倡)
(1) 函数的名字首字母大自定义构造函数:是对工厂函数进行封装写(约定-建议)
(2) 在调用的时候,使用new关键字来调用

/* 细节: */
        function Person(name, age, price) {
            /* 当使用new来调用函数的时候,内部会执行下面的代码 */
            /* 001-默认会创建一个空对象 */
            /* var o = new Object() */
            /* 002-默认会把这个空对象赋值给this */
            /* this = o; */
            /* 003-设置this的原型对象指向构造函数的原型对象 */
            /* this.__proto__ = Person.prototype */

            /* 004-通过this来添加属性和方法 */
            this.name = name;
            this.age = age;
            this.price = price;
            this.showName = function() {
                console.log("姓名:" + this.name);
            };
            /* 005-在函数的最后默认总是会把this返回 */
            /* return this */
        }

        var person1 = new Person("zs", 19, 300);
        var person2 = new Person("ls", 34, 100);
        console.log(person1);
        console.log(person2);

本文地址:https://blog.csdn.net/Frank_yzb123123/article/details/111043829