javascript核心技术(四十四)面向对象(一) 对象的创建 字面量创建与构造函数创建

[复制链接]
查看: 1091|回复: 31
发表于 2023-1-28 12:12:27 | 显示全部楼层 | 阅读模式
从今天开始我们就进入面向对象的学习,面向对象其实是最贴合实际的一种编程思想,但也是所有编程语言中最为抽象的一部分。
我们先简单说一下何为面向对象。
面向对象是一种编程思想,它并非语法规定,只是一种思路,与其对应的是面向过程。
所以,为了能让大家了解面向对象编程的优点,我们需要先从面向过程说起。
何为面向过程呢?
比如:我们要造10辆汽车,如果是用面向过程的思想来做,那就是马上进入造汽车的环节,需要轮胎就造个轮胎,需要玻璃就造块玻璃,所以,造10辆汽车就要重复造10次轮胎,10次玻璃,10次...。
如果是用面向对象的思想来做,我们先不造汽车,先来造轮胎和玻璃,造轮胎和玻璃之前,我们先造轮胎和玻璃的生产线,这个生产线在编程语言中被统称为类,在js中称为构造函数。一旦有了生产线,那么分分钟就能生产出一个轮胎一块玻璃,轮胎和玻璃等具体的事物在编程语言中被称为对象。

当构建好配件的生产线后我们才开始造汽车,需要轮胎和玻璃时就从生产线上拿一个过来,所以分分钟能造出一辆汽车。

通过以上的描述,大家应该可以理解到,如果仅仅是小规模的生产,面向过程的最终效率要高一些。但如果是要规模化生产,面向对象对象的效率更高。

既然说要面向对象,我们首先就要知道如何创建一个对象出来。

创建对象总的来说有两种方式
  1. 1、字面量方式。等同于面向过程的造轮子过程。
  2. 2、构造函数方式。等同于搭建生产轮子的生产线。
复制代码


我们先看字面量对象的定义方法
<!DOCTYPE html>
<html>

<head>
        <title>面向对象(一) 对象的创建 字面量方式创建对象</title>
</head>
<body>
        <script type="text/javascript">
        var person = {
                "name":"tom",
                "age":"20",
                "say":function(){
                        console.log('tomsay');
                }
        };
        var person1 = {
                "name":"berry",
                "age":"30",
                "say":function(){
                        console.log('berrysay');
                }
        };
        </script>
</body>
</html>

以上我们通过字面量的方式定义了两个对象person和person1。

下面再看通过构造函数的方式创建对象
<!DOCTYPE html>
<html>

<head>
        <title>面向对象(一) 对象的创建 构造函数方式创建对象</title>
</head>
<body>
        <script type="text/javascript">
        //构造函数 即:被new实例化了的普通函数
        function Person(n, a){
                //new实例化过程分析: 
                //1.首先创建一个空对象  var obj = {};
                //2. 将创建的对象,赋给this关键字 this = obj;
                //3. 将一些属性方法,通过this设置到对象上
                //我们只需要直接在构造函数中,使用this 设置成员即可
                this.name = n;
                this.age = a;
                this.say = function(){
                        console.log('我叫' + this.name);
                }
                //4. 自动将新对象 返回  return this;

        }
        var person = new Person('tom', 30);
        var person1 = new Person('berry', 30);
        console.log(person);
        console.log(person1);
        // 构造函数特点:函数名称通常首字母大写,不需要写return返回值,使用this设置成员
        // 构造函数 相当于类的概念; 
        // 实例化构造函数,得到这个类下的具体的对象
        </script>
</body>
</html>

javascript核心技术(四十四)面向对象(一) 对象的创建 字面量创建与构造函数创建

既然是讲面向对象,自然是使用构造函数的方法创建对象更为重要,因为以后我们都是通过构造函数来创建对象的。
以上就是关于字面量创建对象与构造函数创建对象的语法,本节就先讲到这里,下一篇再继续。
易博软件介绍

1

主题

192

帖子

98

积分

营销菜鸟

Rank: 3Rank: 3

积分
98
发表于 2023-2-20 23:47:17 | 显示全部楼层
不错不错。说出了我在大学的困惑和努力的方向。。谢谢!!

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-3-4 21:15:51 | 显示全部楼层
谢谢共享!让我受用无穷!  再次谢谢你!!

0

主题

22

帖子

12

积分

营销入门

Rank: 2

积分
12
发表于 2023-3-15 06:53:33 | 显示全部楼层
“所以我做不出来不代表中国程序员比台湾或者别的地方的程序员。。。。。。”    请问斑竹,台湾不就是中国的吗,为什么要分开?你要表达的东西是很好,可是我建议你下次注意一下自己的言语,不要把一件好事变成了一件错事!!!!!      

0

主题

10

帖子

6

积分

营销入门

Rank: 2

积分
6
发表于 2023-3-24 12:25:55 | 显示全部楼层
是啊,重知识轻技术的后果

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-3-31 05:42:22 | 显示全部楼层
学长的话让我感到惭愧  但我相信此刻会是一个新的起点  我会收拾起自己的浮躁和懒惰  踏踏实实地走好下一步  谢谢

0

主题

9

帖子

5

积分

营销入门

Rank: 2

积分
5
发表于 2023-4-4 15:45:26 | 显示全部楼层
真的, 这让我看了感触也很深,thank you very much!!!!!!!!  考官的方法真的很简单,相信谁都看的懂. 但是真正又有几个人能写的出来那样的呢??  高!

0

主题

16

帖子

9

积分

营销入门

Rank: 2

积分
9
发表于 2023-4-9 17:45:31 | 显示全部楼层
高见,这也就是学无止尽吧,能干其实很简单,真正能干得好,干出名堂来却是相当不容易的。要不然为何中国就出不了闻名于世的软件呢?如果作为业余爱好,能写出来也许够用了,作为专业编程,路也是艰难的。    说起来我也是学计算科学与技术的。在学校时拼了老命的不让自己参加补考我做到了,但出来之后发现重要的东西都没有学到,相比非计算机专业的人来说我毫无优势,感觉自己就只会开机,关机,重启!!!所以我出来之后也没有从事这方面的工作。不过想想真是可惜了四年的光阴和我曾经的一腔热血哦~~~~
发表于 2023-4-14 11:43:08 | 显示全部楼层
看来我现在的数据结构与算法还听有用的  我要把他给学好  谢谢楼主

0

主题

47

帖子

25

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
25

终身会员

发表于 2023-4-19 00:46:36 | 显示全部楼层
天呀,我也要成为程序设计师~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表