JavaScript对象
声明
该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明
JavaScript对象
JavaScript 对象是拥有属性和方法的数据。换句话说:对象是属性和方法的容器
例如:真实生活中,一辆汽车是一个对象。
对象有它的属性,如重量和颜色等,方法有启动停止等
对象 属性 方法 汽车 car.name = Fiat car.model = 500 car.weight = 850kg car.color = white car.start() car.drive() car.brake() car.stop() 所有汽车都有这些属性,但是每款车的属性都不尽相同。
所有汽车都拥有这些方法,但是它们被执行的时间都不尽相同。
在 JavaScript中,几乎所有的事物都是对象。对象也是一个变量,但对象可以包含多个值(多个变量),每个值以 键值对 name:value 呈现。例如
var car = {name:"Fiat", model:500, color:"white"};
换句话说, JavaScript 对象是变量的容器。
7.1 对象定义
可以使用字符来定义和创建 JavaScript 对象,定义 JavaScript 对象可以跨越多行,空格跟换行不是必须的
例如:
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
7.2 对象属性
1、对象属性
可以说 "JavaScript 对象是变量的容器"。
但是,我们通常认为 "JavaScript 对象是键值对的容器"。
键值对通常写法为 name : value (键与值以冒号分割)。
键值对在 JavaScript 对象通常称为 对象属性。
2、访问对象属性
可以使用 .property 或 ["property"].
person["lastName"]; //方法一
person.lastName; //方法二
3、对象方法
对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加()调用 (作为一个函数)。
以下实例访问了 person 对象的 fullName() 方法:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>方法调用练习</title>
</head>
<body>
<p>创建和使用对象方法。</p>
<p>对象方法是一个函数定义,并作为一个属性值存储。</p>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function()
{
return this.firstName + " " + this.lastName;
}
};
document.getElementById("demo1").innerHTML = "不加括号输出函数表达式:" + person.fullName;//不加括号输出函数表达式:function() { return this.firstName + " " + this.lastName; }
document.getElementById("demo2").innerHTML = "加括号输出函数执行结果:" + person.fullName();//加括号输出函数执行结果:John Doe
</script>
</body>
</html>
添加()才是调用方法,不添加()就是相当于要访问 person 对象的 fullName 属性,它将作为一个定义函数的字符串返回
4、创建和访问对象方法
4.1 创建对象方法
可以使用以下语法创建对象方法:
methodName : function() {
// 代码
}
4.2 访问对象方法
注意:fullName是属性,fullName()是方法
如果使用 fullName 属性,不添加 (), 它会返回函数的定义
可以使用以下语法访问对象方法:
objectName.methodName()
4.3 知识点总结
-
有多种方式可以创建,使用和修改 JavaScript 对象。同样也有多种方式用来创建,使用和修改属性和方法。
-
JavaScript对象:属性和方法的容器;
对象的属性之间一定要用逗号隔开;
对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加 () 调用 (作为一个函数)。
-
javaScript 可以通过 new Object 来创建对象,再添加属性和属性值,比如:
var person=new Object(); person.name='小明'; person.sex='男'; person.method=function(){ return this.name+this.sex; }
-
javaScript对象中属性具有唯一性(这里的属性包括方法),如果有两个重复的属性,则以最后赋值为准
-
拓展知识
键的类型不一定是字符串,而是字符串或符号,一般类型都是转换成字符串(对象数字等类型),但是符号不会被强制转换。
注意:如果把符号用作对象的属性 / 键值,那么它会以一种特殊的方式存储,使得这个属性不出现在枚举中,要通过原型链上的函数 .getOwnPropertySymbols 才能找到:
var p = { foo: 16, [ Symbol( "bar" ) ]: "hello world", baz: true }; Object.getOwnPropertyNames( p ); // [ "foo","baz" ] //如果要取得对象的符号属性: Object.getOwnPropertySymbols( p); // [ Symbol(bar) ]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)