javascript——js创建对象的四种方式

22 篇文章 0 订阅
18 篇文章 1 订阅

四种创建对标题象的方式:

1.系统的构造函数(Object)——缺点:麻烦

var obj = new Object();
obj.uname = "zs";
obj.age = 20;
obj.sayHi = function() {
		console.log("hello");
	}

2.对象字面量——缺点:不能批量创建对象,只能创建一个

var obj = {
	uname: "zs",
	age: 22
}

3.工厂函数——可以批量创建对象,但是无法识别类型

// 工厂函数创建对象,是一个函数,函数要有对应的参数,需要return返回所创建的对象
        function person(uname, age) {
            // 这里面可以用系统构造函数或者字面量创建对象
            // var obj = new Object();
            // obj.uname = uname;
            // obj.age = age;
            var obj = {
                uname: uname,
                age: age
            }
            return obj
        }
        //调用工厂函数需要传参
        console.log(person("zs", 20));

4.自定义构造函数

function Person(uname, age) {
            this.uname = uname
            this.age = age
        }
        //构造函数是需要new的
        var obj = new Person("zs", 22)
        console.log(obj);
        console.log(obj.uname, obj.age); 

构造函数:
1.函数名首字母大写(规范,潜规则)
2.必须要和new一起使用

全部代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>创建对象</title>
</head>

<body>

    <script>
        // 系统构造函数创建对象
        /* var obj = new Object();
        obj.uname = "zs";
        obj.age = 20;
        obj.sayHi = function() {
                console.log("hello");
            } */
        // 字面量创建对象
        /* var obj = {
            uname: "zs",
            age: 22
        }
        console.log(obj);
        console.log(obj.uname, obj.age); */
        // 工厂函数创建对象,是一个函数,函数要有对应的参数,需要return返回所创建的对象
        function person(uname, age) {
            // 这里面可以用系统构造函数或者字面量创建对象
            // var obj = new Object();
            // obj.uname = uname;
            // obj.age = age;
            var obj = {
                uname: uname,
                age: age
            }
            return obj
        }
        console.log(person("zs", 20));
        // 自定义构造函数创建对象,构造函数一定要用new
        /* function Person(uname, age) {
            this.uname = uname
            this.age = age
        }
        //new所做的四件事情:
        /*  1.创建一个空对象
            2.将this指向创建的空对象
            3.执行构造函数内的代码
            4.把新创建的对象给返回出去 */
        // 若是没有new,则返回一个undefined 
        var obj = new Person("zs", 22)
        console.log(obj);
        console.log(obj.uname, obj.age); */
    </script>
</body>

</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值