对象
1.引入:
- 对象由属性和方法组成;属性描述事物的特征,常用名词;方法描述事物的行为,常用动词
- 数组虽然可以保存多个值,但 对象可以保存更加完整的信息
2. 创建对象的三种方式:
1.利用字面量创建对象:
对象字面量是指一对花括号
var obj={};//创建一个空对象
2.使用对象
(1)调用对象的属性:1. 用对象名.属性名 2. 用对象名['属性名'] (中括号里面加引号)
(2)调用对象的方法:用对象名.方法名()
<script>
// 1. 利用字面量创建对象:
var obj={
name:'小童',
age:19,
sex:'女',
sayHi:function(){
console.log('你好呀!');
}
}
// (1) 里面的属性或者方法采用属性值对的形式: 属性:属性值 属性值可以是任意类型的数据
// (2)多个属性或方法中间用逗号隔开
// (3)方法冒号后面是采用函数表达式来声明方法
console.log(obj.name);
console.log(obj['age']);
obj.sayHi();
</script>
2.利用new Object创建对象:
- 利用等号 = 赋值的方法,添加对象的属性和方法
- 每个属性和方法之间用分号隔开
<script>
// 1.利用new Object创建对象:
var obj = new Object();//创建了一个空对象
obj.name = '小童';
obj.age = 19;
obj.sex = '女';
obj.sayHi = function () {
console.log('你好呀!');
}
// 2.使用对象:
console.log(obj.name);
console.log(obj['age']);
obj.sayHi();
</script>
3.利用构造函数创建对象:
1.语法:
function 构造函数名(){
this.属性 = 值 ;
this.方法 = function(){}
}
new 构造函数名();
- 例子 :
<script>
// 利用构造函数创建对象:
function Star(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.sing=function(sang){
console.log(sang);
}
}
//创建第一个对象
var star1 = new Star('小孩',18,'女');
// console.log(typeof star1);此处是object,就是调用构造函数返回的是一个对象object
console.log(star1.name);//小孩
console.log(star1.sex);//女
console.log(star1['age']);//18
star1.sing('冰雨');//冰雨
//创建第二个对象
var star2 = new Star('小孩',18,'男');
console.log(star2['name']);
star2.sing('雪花');
</script>
- 构造函数的名字首字母要大写
- 构造函数不需要return,就可以返回结果
- 调用构造函数。必须用new
- 属性和方法前面必须有this. 表示当前对象
- 构造函数:抽象了对象的公共部分,封装到函数里面,它泛指某一大类
- 创建对象:特指某一个,通过new关键字创建对象的过程也称作对象实例化
通过new关键字创建对象的过程:
- 在内存中创建一个新的空对象
- 让this指向这个新的对象
- 执行构造函数里面的代码,给这个新对象添加属性和方法
- 返回这个新对象
3.遍历对象(一般指属性)
- 利用 for(变量 in 对象){
直接输出变量k,得到 属性名
输出对象名[变量] 得到 属性值
} - 以上输出时若都有就会出现:第一个属性名,下一行就是属性值
- for in 里面的变量,习惯上写k或者key
function Star(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.sing=function(sang){
console.log(sang);
}
}
//创建第一个对象
var star1 = new Star('小孩',18,'女');
for (var k in star1){
// console.log(k);//直接输出变量k,得到 属性名
// //输出name age sex sing
console.log(star1[k]);//输出对象名[变量] 得到 属性值
// //输出:小孩 18 女 ƒ (sang){
// console.log(sang);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现