对象的构建和构造函数yuanliy

对象的字面量就是一个{}。里面的属性和方法均是键值对:

键:相当于属性名。

值:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等)。

使用对象字面量来创建一个对象,非常简洁,举例如下::

使用对象字面量,可以在创建对象时,直接指定对象中的属性。语法:{属性名:属性值,属性名:属性值....}

例 1:(一个简单的对象)

例 2:(一个较复杂的对象)

对象字面量的属性名可以加引号也可以不加,建议不加。如果要使用一些特殊的名字,则必须加引号。

属性名和属性值是一组一组的键值对结构,键和值之间使用:连接,多个值对之间使用,隔开。

通过该方法可以大批量的创建对象。

第一次看到这种工厂模式时,你可能会觉得陌生。如果简化一下,可以写成下面这种形式,更容易理解:(也就是,利用 new Object 创建对象)

弊端:

使用工厂方法创建的对象,使用的构造函数都是 Object。所以创建的对象都是 Object 这个类型,就导致我们无法区分出多种不同类型的对象。

打印结果:

接下来,我们专门来讲一下构造函数。

构造函数:是一种特殊的函数,主要用来创建和初始化对象,也就是为对象的成员变量赋初始值。它与 new 一起使用才有意义。

我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个构造函数里面。

构造函数的创建方式和普通函数没有区别,不同的是构造函数习惯上首字母大写。

构造函数和普通函数的区别就是调用方式的不同:普通函数是直接调用,而构造函数需要使用 new 关键字来调用。

this 的指向也有所不同:

2.以构造函数方法的形式调用时,this 是调用方法的那个对象

3.以构造函数的形式调用时,this 是新创建的实例对象

new 在执行时,会做下面这四件事:

(1)开辟内存空间,在内存中创建一个新的空对象。

(2)让 this 指向这个新的对象。

(3)执行构造函数里面的代码,给这个新对象添加属性和方法。

(4)返回这个新对象(所以构造函数里面不需要 return)。

因为 this 指的是 new 一个 Object 之后的对象实例。于是,下面这段代码:

可以改进为:

注意上方代码中的注释。

JavaScript 的构造函数中可以添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的 this 上添加。通过这两种方式添加的成员,就分别称为静态成员和实例成员。

静态成员:在构造函数本什上添加的成员称为静态成员,只能由构造函数本身来访问。

实例成员:在构造函数内部创建的对象成员称为实例成员,只能由实例化的对象来访问。

使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类。

通过一个构造函数创建的对象,称为该类的实例。

使用 instanceof 可以检查一个对象是否为一个类的实例。

语法如下:

如果是,则返回 true;否则返回 false。

代码举例:

根据上方代码中的最后一行,需要补充一点:所有的对象都是 Object 的后代,因此 任何对象 instanceof Object 的返回结果都是 true。

对象字面量和 json 比较像,这里我们对 json 做一个简单介绍。

JSON:JavaScript Object Notation(JavaScript 对象表示形式)。

JSON 和对象字面量的区别:JSON 的属性必须用双引号引号引起来,对象字面量可以省略。

json 举例:

注:json 里一般放常量、数组、对象等,但很少放 function。

json 遍历的方法:

json 采用 for...in...进行遍历,和数组的遍历方式不同。如下:

THE END
0.Java刷题———Java的零星使用(一)为什么不用变量也可以点方法在初识break和continue时,可能注意力主要关注于二者的区别上,所以焦点放在一个是“跳出循环”,一个是“执行下一轮循环”,这是“横向”对比。但是学习带label上,则要“纵向”对比:带label的和不带label的对比: 带label的break是直接跳出label循环 带label的continue是停止执行label循环后面代码,执行 jvzquC41dnuh0lxfp0tfv8UtqNgzojs1ctzjeuj1fgzbkux1::672:62
1.股票投资价值分析汇总十篇层次分析法(analytical hierarchy process,简称AHP法),由美国运筹学家Satty于20世纪70年代提出,是一种定性与定量分析相结合的多准则决策方法,具体分为五个步骤:根据总目标明确问题,分解问题并构建层次分析模型,根据隶属关系构造判断矩阵,层次单排序和层次总排序。运用AHP的关键是构造满意一致性矩阵,但由于人们主观意识对jvzquC41yy}/z~jujw4dqv3ep1nbq€jp166:3A3jvor
2.黄梅戏女驸马通用12篇应进一步加大黄梅戏艺术院团改革力度,加快改革管理体制,创新激活运行机制,尊重艺术发展规律,遵循市场经济规律,着力构建新型管理体制和运行机制,健全完善投入扶持、评价奖励等机制。从组织领导到政策措施,从人才培养到院团体制,从剧本创作到理论研究,从艺术生产到市场开拓,从精品攻关到普及推广,采取切实有效的措施和办法,充分jvzquC41yy}/z~jujw4dqv4jcq}fp86362:10qyon
3.javascript中面向对象的两种构建方式(构造函数)和(原型模式的区别)1、构造函数模式---》alert的结果为false <!DOCTYPE html>DocumentfunctionPerson(name,age,job){this.name=name;this.age=age;this.job=job;this.showname=function(){ alert(this.name); }this.showage=function(){ alert(this.age); }this.showjob=function(){ alert(this.job); } }vartom=newPersonjvzquC41yy}/ewgnqiy/exr1jq{{klmkiwueqwl1r1?12@7270nuou
4.吴迪陈耀东宅基地使用权信托制度构建三、宅基地信托模式的构造 宅基地信托流转目前在我国实务界还是一片空白,具体应如何设计相应的框架和制度,可以参考土地承包经营权信托的经验并做出适度调整。宅基地信托的过程中,宅基地所有权并不发生转移,而是形式上通过登记的方式发生转移。信托机构形式上获得宅基地的“所有权”外观,但宅基地作为信托财产,其所有权仍jvzquC41knrtu7lfwhy/gmz0ep5jpot132851:5;:34ivv
5::《法学研究》2021年第3期要目内容提要:域外管辖的理论构造和国内法域外适用的体系构建是我国当前面临的重大课题,其中关键之处是需对域外立法管辖和域外司法管辖作出恰当界分。无论对于域外立法管辖还是对于域外司法管辖,公法和私法的区分都构成了理论和实践展开的基础。各国立法管辖和司法管辖均不同程度地超越了属地原则。域外立法管辖的基本jvzq<84kqngx0lxup0io1stwtpgm1o}{l1814:571v814:5748e65<;4324tj}rn
6.Python创建二维数组与初始化的实践举例python2.1 利用list自身进行构造 list自身的构造函数形式多种多样。想构建一个二维数组自然并非难事。 例如,想要构建一个m行n列的二维数组。可以这样初始化。 1 L=[[]*n]*m 展示结果如下: 如果想要给一个初始化的值,可以写成: 1 L=[[0]*n]*m 则: jvzquC41yy}/lk:30pku1jwvkerf1;;;88>/j}r
7.日本“妖怪事件”的现代构建——基于《怪谈》和《化物语》的比较在这股文化热潮之下“妖怪”不再仅仅是“古老传说”的“再呈现”,而是以一种现代趣味进行了重新的构建。新的妖怪形象与传统妖怪到底有什么区别?这些区别又反映出在“话语”的背后,日本人的民族性格和对社会秩序的理解产生了怎样的变化呢?本篇文章试图从这两个问题入手,将小泉八云在《怪谈》中搜集的经典妖怪传说《jvzquC41oq|jg7iqwdgo0lto1tkwkn|1366659::1
8.双碳目标下转型金融驱动高耗能行业碳减排的机制及路径研究在联合国环境规划署所构建的可持续金融框架中,绿色金融与共同致力于减缓气候变化,服务于实现《巴黎协定》中所设定的减排目标。但转型金融与绿色金融间存在共同的目的与业务内容上的区别,从概念角度来说,绿色金融(GreenFinance)按照中国人民银行的说法:是指为支持环境改善、应对气候变化和资源节约高效利用的经济活动,即对jvzquC41|khp0myyy4dqv4oujyij87246711}7246714:;>:0jvs
9.【华泰金工林晓明团队】行业配置策略:趋势追踪视角——华泰基本面轮动系趋势追踪指标间的本质区别在于对历史价格的加权方式 不同趋势追踪指标的构建具有非常相似的逻辑,可以看成是对过去一段时间的资产价格或是收益率赋予不同的权重,并将过去加权的结果用于对未来的预测中。Ari Levine和Lasse Heje Pedersen在“Which Trend is Your Friend?”(2015)文中给出了趋势签名图(trend signature jvzq<84hkpgoen3ukpg/exr0ep5tvxhm1uzpetov1814922;/621mte/kowj~nrr3>6;?760unuou
10.Java设计模式二构建者模式本文介绍了构建者模式的基本概念,包括其角色定义、与工厂模式的区别,以及为何和何时使用构建者模式。并通过MyBatis框架中的具体应用案例,如MappedStatement和SqlSessionFactory的构建过程,进一步解析构建者模式的实际运用。 一、构建者模式: 1、介绍: 建造者模式的定义是:将一个复杂对象的构造与它的表示分离,使同样的构建jvzquC41dnuh0lxfp0tfv8YVFtkbo]Y1ctzjeuj1fgzbkux132?27<754