常见的JavaScript资料型别,可概分为基本型别(primitives)与物件型别(object)。基本型别已为前文所述,而基本上,基本型别以外的型别,就是本篇的主题──物件型别了。
JavaScript的物件概念与许多程序语言相近,可包含无属性、单一属性或复数属性,产生多样化的运算及用途。
除了浏览器内建物件(BOM)如window(浏览器视窗)、document(网页)、location(网址)、date(日期时间)之外,我们常常必须自建物件。在JavaScript有两种作法替它塞入各种属性(key)与值(value)。
传统作法:
let prefecture = new Object();
prefecture.name = “Miyagi”
prefecture.region = “Tohoku”
prefecture.callName = function(){
alert ( this.name );
}
物件实字(object literal),使用大括号即可:
let prefecture = {
name = “Miyagi”
region = “Tohoku”
callName = function(){
alert ( this.name );
}
}
在本例中,name为属性,Miyagi为值,依此类推。建立之後,可再透过点(.)来存取它。在刚刚大括号写法的程序码下方加上:
prefecture.name //印出 Miyagi
prefecture.region //印出Tohoku
prefecture.callName //印出 Miyagi
然而,遇到属性命名不合法(如:以数字命名),透过点存取值将发生错误。为此,可另使用中括号存取之:
let prefecture = {
“004” = “Miyagi”
}
prefecture[“004”] //印出 Miyagi
prefecture.004 // 产生错误 SyntaxError: Unexpected number
新增属性只要以 = 指定即可。承前例,若要新增宫城县的首府,这里加上一个capital属性给它:
let prefecture = {
name = “Miyagi”
capital = “Sendai”
region = “Tohoku”
}
删除属性只须一行detele即可,承前例,若要移除宫城县的地区分类,就写:
delete prefecture.region
删除後、不存在的属性,将属於undefined属性。以移除region属性後的前例为例,若此时印出:
console.log(prefecture.region) //已是undefined而非 Tohoku
凡是总有例外。若此时要呼叫、检查的属性就是undefined,而它其实还存在时,可以用两种方法加以检查。如:
let prefecture = {
name = “Miyagi”
capital = “Sendai”
}
//以下使用in运算子
console.log (“name” in prefecture) //true属性存在
console.log (“region” in prefecture) //false属性不存在
//以下使用hasOwnProperty()方法
prefecture. hasOwnProperty(“name”) //true属性存在
prefecture. hasOwnProperty(“region”) //false属性不存在
两者的差别在於,hasOwnProperty()方法只确认该物件/属性本身,in运算子还会追溯物件的原形链(prototype)。有关概念,将於後续文章再做介绍。
>>: JavaScript学习日记 : Day7 - 函数(二)
防火墙 GCP VPC防火墙规则,应用於给定的项目和网络,防火墙规则可以包含IPv4 IPv6 范围...
今日文章目录: 需求说明 事前准备 需求说明 针对不同用途的toDoList。像是:工作用的toD...
第二天装好django 然後建立了第一个专案bb後 然後我按照影片教的执行 runserver 然後...
插入图表 插入图表的方式有2种 1.右键插入图表(Image) 2.从Toolbox拖拉图表过来 再...
一般在写 windows form 程序时 如果不是大型开发 老板只要求 东西能动 项目立刻好 我们...