javascript核心技术(二十)使用new Object与内置对象的构造函数来创建对象

[复制链接]
查看: 1083|回复: 31
发表于 2023-1-23 12:05:49 | 显示全部楼层 | 阅读模式
前面我们声明对象时都是通过字面量直接定义的,另外我们还可以通过new关键词实例化一个内置构造函数/自定义构造函数得到一个对象。
下面我们就说一下这两种获得对象的方法
1、new自定义的构造函数

function fn(){

}

var obj2 = new fn();
console.log(obj2, typeof obj2);


javascript核心技术(二十)使用new Object与内置对象的构造函数来创建对象
以上我们定义了一个名为fn的函数,然后new这个函数,就能得到一个对象,它的类型是object。我们把这个被new的函数称为构造函数,把new的过程称为实例化,即:从一个类里面取得一个实实在在的对象。

那么,大家就会问,为什么要这样做呢,其实,它的作用和使用function封装函数一样,最大的意义都是为了方便代码的重用。与function不同的是,使用对象是面向对象的一种编程思想,使用函数是面向过程的编程思想。

面向对象编程是目前主流的编程思想,它有诸多优点,后面我们会详细讲解面向对象的全过程,这里只是提一下。

下面我们来讲一下,可以被new的构造函数和普通函数有什么区别,构造函数有以下几个特性:

特性一:构造函数被实例化时,内部的代码会被自动执行

function fn(){
    console.log(300);
}
var obj2 = new fn();

javascript核心技术(二十)使用new Object与内置对象的构造函数来创建对象

特性二:构造函数内部可以使用this设置属性和方法

// 构造函数名称,通常首字母大写(不是语法要求,只是习惯)
function Fn(){
        //在构造函数内部,使用 this.成员名 = 成员值
        this.age = 40;
        this.say = function(){
                return 'hello';
        }
}
var obj2 = new Fn();//实例化构造函数fn,得到对象
console.log(obj2, typeof obj2);
console.log( obj2.say() );


javascript核心技术(二十)使用new Object与内置对象的构造函数来创建对象



2、new内置构造函数
在前面我们已经知道如何自定义一个构造函数,其实在JS内部已经定义好了很多内置的构造函数,在使用时,我们只需要new一下这些构造函数即可得到相应的实例化对象,不需要手动定义构造函数。
今天我们先讲Object这个顶级构造函数,其它的内置构造函数下节来讲。
var obj1 = new Object();
// var obj1 = new Object;//后面的小括号,可以不加,推荐还是加上
console.log(obj1); //得到一个空对象,等同于var obj1 = {};
//下面我们可以给这个空对象赋值
obj1.name='zhangsan';
console.log(obj1,typeof obj1);

javascript核心技术(二十)使用new Object与内置对象的构造函数来创建对象
以上就是使用new Object与对象的构造函数来创建对象的方法,大家自己动手练习一下,下一篇再继续。


易博软件介绍

0

主题

11

帖子

6

积分

营销入门

Rank: 2

积分
6
发表于 2023-2-15 17:49:24 | 显示全部楼层
我真的很受启发!

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-2-27 21:52:58 | 显示全部楼层
谢谢提点
发表于 2023-3-11 12:25:28 | 显示全部楼层
^我看了.  我知道了一个程序员不容易  谢谢,前辈指点!  学习了~~~~~~~~~~~~~~~~  谢谢指点,收益很深

0

主题

12

帖子

7

积分

营销入门

Rank: 2

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

0

主题

16

帖子

9

积分

营销入门

Rank: 2

积分
9
发表于 2023-3-27 16:58:33 | 显示全部楼层
^是南大小百合上的帖子,很早就看过了

0

主题

3

帖子

2

积分

营销入门

Rank: 2

积分
2
发表于 2023-4-2 13:13:43 | 显示全部楼层
是呀也许这就是中国教育饿偏差吧?  非常感谢上文的作者的经验之谈,对于我们这些还没有出炉的是一笔宝贵的财富!!!!
发表于 2023-4-7 12:24:49 | 显示全部楼层
让我又有了奋斗精神

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-4-12 17:20:25 | 显示全部楼层
很好很棒!我虽然是一名初学者,但是看了这篇文章后,对我有了很大的触动,在今后的学习之路上可能会遇到各种各样的难题,但我会坚守一条,坚持就是胜利!世上没有解不开的结,没有过不去的坎!努力!
发表于 2023-4-17 06:24:32 | 显示全部楼层
好的程序员需要有创造性的思维,越到最后越显示出作为程序员所具备数学基础的作用  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

返回顶部 返回列表