JS(第十课)JS中的对象

news/2024/5/2 22:33:19/文章来源:https://blog.csdn.net/qq_56248592/article/details/127436187

Com.Java.Basis第九课 《类与对象》_星辰镜的博客-CSDN博客

有兴趣的可以去看一下

本文内容核心:对象

 在百度翻译中对象称为object

安装插件

 

第一部分去找找在JS中对象的语法是什么 如何去创建对象的,调用对象!

var name="李四";

var people={};

var obj=[]

var dog={

    // sex

}

var animal={

    age:23

}

// 对象

var teacher={

    name:"张珊"

}
 

console.log(teacher)console.log(people)console.log(obj)console.log(dog)console.log(animal.sex)console.log(animal.age)
上面是对象的运行结果

 通过上面的小Demo 我们发现了只有下面的自己声明的对象打印了

var animal={
    age:23
}

// 对象
var teacher={
    name:"张珊"
}


console.log(teacher)  //在这里控制台打印了我的内容 

console.log(animal.age)   在这里控制台打印了我们的语法

接下来我们吧上面的类型打印一下

在上面的内容上去判断他们的类型

 

 总结一:

创建对象的语法是 var 对象名={属性1:属性值1,属性2:属性值2,属性3:属性值3,属4:属性值4,属性5:属性值5,属性6:属性值6,...}
var obj2 = { "name": '张三',"age": '23',"sex": '男'}

对象的调用 对象名称.属性

console.log(obj2.name)

第二部分对象除了有属性应该还有行为在js中称之为方法,那对象的方法改如何调用:在下面的案例中去找找对象的方法时如何调用的呢!


var name = "shriop"
var age = 19
var height = 1.80
console.log("名字是" + name + "年龄" + age + "身高" + height);

// ! 对象的类型
var obj1 = new Object();
console.log(obj1);

// ! 对象的创建
var obj2 = {
    "name": '张三',
    "age": '23',
    "sex": '男',
   
run: function () {
        console.log("我是对象创建的方法")
    },

    hand: {
        "count": ''
    },

    eat:function(){
        console.log("我的函数内容在吃什么呢")
    }

}

console.log(obj2.name)
console.log(obj2.hand)
console.log(obj2.run())
console.log(obj2.eat())

 经过上面的代码演示是否理解呢!

总结二:

创建对象的方法的语法规则:

行为名称:function () { }

动作名称:function () { }

run: function () {
        console.log("我是对象创建的方法")
    }

第三部分如何对对象的属性进行增加 修改 删除呢!

// 修改
obj2["name"] = "李四"
// 修改
obj2.name = "赵武"
//增加
obj2["hand"] = "234"
// 删除
delete obj2.hand

 

总结三:对于对象的修改 删除 增加的 语法

// 修改方案一    对象名[属性名]=修改后的属性名
obj2["name"] = "李四"
// 修改方案二    对象名.属性名=修改后的属性名
obj2.name = "赵武"


//增加      对象名[对象的属性]=属性值
obj2["hand"] = "234"
// 删除  dellete 对象名.属性名
delete obj2.hand

第四部分 对象的遍历  看下面的图 

 

 总结四:对象遍历的语法规范

方式一

var 数组名称=Object.keys(对象名)

var arr = Object.keys(home)
for (var i = 0; i < arr.length; i++) {
    console.log("第二中方式" + home[arr[i]])
}

 

方式二

for (var j in home) {
    console.log("for in ___" + home[j])
}

// ! 对象你声明 
// ! 对象属性的调用
// ! 对象的遍历// ! 对象的类型
var name = "shriop"
var age = 19
var height = 1.80
console.log("名字是" + name + "年龄" + age + "身高" + height);// ! 对象的类型
var obj1 = new Object();
console.log(obj1);// ! 对象的创建
var obj2 = {"name": '张三',"age": '23',"sex": '男',run: function () {console.log("我是对象创建的方法")},hand: {"count": ''}
}
// 修改
obj2["name"] = "李四"
// 修改
obj2.name = "赵武"
//增加
obj2["hand"] = "234"
// 删除
delete obj2.handconsole.log(obj2.name)
console.log(obj2.hand)
console.log(obj2.run())// ! 创建对象的购物的信息 
var shooping = {price: '123',name: '<智慧与人生>',address: "江西省"
}
// 增加
shooping.weight = 1.9
// 修改的方式
shooping["color"] = "yellow"
shooping.price = "4678"
// 删除
delete shooping.address
// 查询信息
console.log("购物信息商品的信息:_" + "价格" + shooping.price + "名称" + shooping.name + "地址" + shooping.address)// !创建手机对象的信息var phone = {color: "red",price: "456$",clq: ""
}
// 增加
phone.hz = 123
// 修改
phone.color = "black"
// 删除
console.log("手机购买用户的信息:")// ! 创建用户的内容
var home = {account: '143',password: "12345678",nickname: "用户",phone: "19867894567",
}// var arr=Object.values(home)
var arr = Object.keys(home)
for (var i = 0; i < arr.length; i++) {console.log("第二中方式" + home[arr[i]])
}//!  for each
for (var j in home) {// console.log("for in ___"+j)console.log("for in ___" + home[j])
}console.log(home)// ! 案例三var m = "hellow"
var obj = {"good friend": "shiplo",[m]: "你好数据"
}
// console.log(obj "good friend");
console.log(obj.m)
console.log(obj["good friend"]);
console.log(obj["hellow"]);
console.log(obj[m]);
console.log(obj.m);// 
var people={"ban an a":'yellow',weight:'300'
}console.log(people["ban an a"])

创建对象的第二种方式  自定义构造函数创建对象 先进行对代码的解析 在js中严格区分大小写 语法页在下面文件中

// ! 创建自定义的构造函数的对象

// !定义构造的函数
// !定义构造函数的属性
function Student(name, sex, age, height) {
    // !初始化对象的name,sex,age,height
    this.name = name;
    this.sex = sex;
    this.age = age;
    this.height = height;

    // !定义构造函数的方法如何去调用
    // !方案一  定义了第一个方法
    this.eat = function () {
        console.log("今天用户定义了一个方法名字叫吃的方法")
    }

}
// !方案二  定义了第二个方法
function sleep() {
    console.log("用户在方案二中定义了一个方法叫sleep")
}

//用户创建对象的实例
var student1 = new Student("我是构造函数的方式创建的对象1", "男", 34, 156);
var student2 = new Student("我是构造函数的方式创建的对象2", "男", 34, 156);
var student3 = new Student("我是构造函数的方式创建的对象3", "男", 34, 156);
var student4 = new Student("我是构造函数的方式创建的对象4", "男", 34, 156);


// 打印输出
// console.log(student1);
console.log(student1.name + "_" + student1.age + "_" + student1.sex + "_" + student1.heig
console.log(student2.name + "_" + student2.age + "_" + student2.sex + "_" + student2.heig
console.log(student1.name + "_" + student2.age + "_" + student3.sex + "_" + student4.heig
// !方法的调用

student1.eat();
sleep();

[Running] node "d:\Com.Src\JavaScript\Day10-20-1\js\自定义构造函数创建对象.js"
我是构造函数的方式创建的对象1_34_男_156
我是构造函数的方式创建的对象2_34_男_156
我是构造函数的方式创建的对象1_34_男_156
今天用户定义了一个方法名字叫吃的方法
用户在方案二中定义了一个方法叫sleep
1000678
用户打印的属性为1000678
用户打印的属性为我是构造函数的方式创建的对象1
用户打印的属性为男
用户打印的属性为34
用户打印的属性为156
用户打印的属性为234
用户打印的属性为function () {console.log("@MyCreteObjectStructure 用户自己创建的第一个函数名称为MyCreteObjectStructure")}
@MyCreteObjectStructure 用户自己创建的第一个函数名称为MyCreteObjectStructure[Done] exited with code=0 in 0.596 seconds

下面有一个案例可以尝试去写写:

// !自己定义一个对象为Pig  使用自己定义的构造函数 如何执行?
/*** @MyCreteObjectStructure 用户自己创建的第一个函数名称为MyCreteObjectStructure* () 函数中的参数个数*/
function MyCreteObjectStructure(id, name, sex, age, height, weight) {// !初始化对象的属性this.id=id;this.name = name;this.sex = sex;this.age = age;this.height = height;this.weight=weight;// 自己定义的一个函数方法为 CreteObjectStructurethis.CreteObjectStructure = function () {console.log("@MyCreteObjectStructure 用户自己创建的第一个函数名称为MyCreteObjectStructure")}}//!用户创建对象的实例var obj = new MyCreteObjectStructure(1000678,"我是构造函数的方式创建的对象1", "男", 34, 156,234);
// !方案一打印输出的内容
// 打印输出id
console.log(obj.id);
// * 方案二 对象名的函数遍历
for (var j in obj) {// console.log("for in ___"+j)console.log("用户打印的属性为" + obj[j])
}// ! 函数方法的调用
// 对象名.方法名
obj.CreteObjectStructure ()

创建对象的第三种方式  Object自定义对象

语法格式:

var 对象名=new  object()

var people = new Object()

var people = new Object()
people.name = "我叫张胜男";
people.age = 123;
people.weight = 67;
people.height = 189;
people.eat = function () {console.log(people.name + " " + people.weight + " " + people.age)
}
console.log(people.name);
people.eat()
[Running] node "d:\Com.Src\JavaScript\Day10-20-1\js\Object自定义对象.js"
我叫张胜男
我叫张胜男 67 123
10099987001
在 sleep 方法中调用小环_______10099987001undefined_______189__89
在 sleep 方法中调用undefined_______189__89
在run方法中调用小环_______10099987001[Done] exited with code=0 in 0.616 seconds

同样下面有一个案例可以尝试去写写:


var people = new Object()
people.name = "我叫张胜男";
people.age = 123;
people.weight = 67;
people.height = 189;
people.eat = function () {console.log(people.name + " " + people.weight + " " + people.age)
}
console.log(people.name);
people.eat()// ! 抽象函数的理解
// ! 创建对象的信息
// ! 自定义一个对象为Dog对象的内容
var Dog = new Object()
// 狗的编号
Dog.id = 10099987001;
// 狗的姓名
Dog.name = "小环"
// 狗的毛色
Dog.corlor = "balck"
// 狗的身高
Dog.height = "189"
// 狗的体重
Dog.weight = 89
// 狗的行为
Dog.run = function () {// 在run方法中调用console.log("在run方法中调用"+Dog.name + "_______" + Dog.id)
}
// 在 sleep 方法中调用
Dog.sleep = function () {console.log("在 sleep 方法中调用"+Dog.color + "_______" + Dog.height + "__" + Dog.weight)Dog.run()
}
// 睡觉
Dog.food = function () {// ! 执行方法名称为food()console.log("在 sleep 方法中调用"+Dog.name + "_______" + Dog.id + Dog.color + "_______" + Dog.height + "__" + Dog.weight)Dog.sleep()}
// 吃食物console.log(Dog.id)
// 调用方法
Dog.food()

控制台:

[Running] node "d:\Com.Src\JavaScript\Day10-20-1\js\Object自定义对象.js"
我叫张胜男
我叫张胜男 67 123
10099987001
在 sleep 方法中调用小环_______10099987001undefined_______189__89
在 sleep 方法中调用undefined_______189__89
在run方法中调用小环_______10099987001[Done] exited with code=0 in 0.616 seconds

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_404184.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图形学-(视图变换,投影变换)

1.视图变换 在 3 维物体变到二维平面的过程中&#xff0c;我们需要规定好相机的位置。对于相机所做的变换就是视图变换 &#xff08;Viewing/Camera transformation&#xff09;。 我们需要对相机位置进行定义&#xff0c;对于一个相机我们要规定下面三个属性&#xff1a; 相…

Transformer3

又是 一篇关于Transformer的~~ 太多了 本文结合Transformer和ConvNets的优点&#xff0c;构造了一种新的即插即用运算符ParC&#xff0c;可以高效地部署在不同的平台上。一个Trick 搞定 CNN与Transformer&#xff0c;即插即涨点即提速&#xff01; 论文链接&#xff1a;http…

Ansible自动化运维工具介绍与部署

ansible自动化运维工具介绍与部署 文章目录一、什么是自动化运维&#xff1f;二、常用的自动化运维工具2.1 Ansible2.2 SaltStack2.3 Puppet2.4 三种自动化工具特点对比三、介绍Ansible3.1 什么是 Ansible?3.2 Ansible 无需代理3.3 Ansible 方式四、部署Ansible4.1 控制节点4.…

U-BOOT小全(三):SPL框架

1、什么是SPL&#xff1f; 为了可以使已有的所有SPL的设计统一&#xff0c;也为了简化添加适用于新板子的设计&#xff0c;专门设计一个通用的SPL框架。在SPL框架下&#xff0c;一个板子的所有代码都能够被重用。代码复制和链接不再是必要的。 在uboot-2011的/doc/README.spl…

跨境电商必读:什么是社交媒体营销?

关键词&#xff1a;跨境电商&#xff0c;社交媒体营销 社交媒体渠道已迅速成为业务发展战略不可分割的一部分&#xff0c;关于社交媒体如何重塑消费者行为&#xff0c;以及组织如何利用它获得收益&#xff0c;网络上已经有大量相关信息&#xff0c;但仍有许多跨境电商企业难以…

H3C VLAN简单配置

将两台电脑都设为自动获取IP&#xff0c;然后左边的加入vlan10,右边的加入vlan20 先配置左边交换机 <H3C>system-view [H3C]user-interface console 0 [H3C-line-console0]idle-timeout 0 0 [H3C-line-console0]exit [H3C]vlan 10 [H3C-vlan10]port GigabitEthernet 1/…

04-Jenkins构建Maven项目

1&#xff09;Jenkins项目构建类型 a&#xff09;Jenkins构建的项目类型介绍 Jenkins中自动构建项目的类型有很多&#xff0c;常用的有以下三种&#xff1a;自由风格软件项目&#xff08;FreeStyle Project&#xff09;Maven项目&#xff08;Maven Project&#xff09;流水线项…

沉睡者IT - 如何识别NFT“洗盘交易”?

推荐阅读1&#xff1a;【创业粉引流变现项目】 推荐阅读2&#xff1a;【抖音网上如何赚钱变现】 推荐阅读3&#xff1a;【中视频横版16:9视频制作教程】 对金融人士来说&#xff0c;“洗盘交易”&#xff08;wash trading&#xff09;并不是一个新词。加密货币也以相同的买入…

grid管理的数据库实例修改时区问题

问题描述 由于安装创建数据库之前没将操作系统的时区设置为本地正确的时区&#xff08;Pacific/Apia&#xff09;&#xff0c;使用的是GMT时间&#xff08;UTC时区&#xff09;&#xff0c;后续将操作系统和数据库修改成正确时区之后&#xff0c;发现sysdate显示有误。 服务端…

计算机网络基础 ---- 动态路由---OSPF协议----详解

OSPF协议&#xff1a; ospf&#xff1a;开放式最短路径优先协议&#xff08;Open Shortest Path First&#xff09; 一、基本概念&#xff1a; 是携带真实掩码&#xff08;无类别链路状态IGP协议&#xff09;&#xff1b;周期更新&#xff08;30min&#xff09; 触发更新 -…

Taichi 加速 Python 中图像处理

Taichi 咱来说一说哈 在计算机视觉&#xff08;特别是深度学习图片预处理、模型训练&#xff09;等复杂度较高&#xff0c;技术迭代速度快的领域&#xff0c;用 Python 快速开发出算法原型、验证效果是许多研发人员的首选方案。著名图像处理库 OpenCV 就提供了完整的 Python 封…

Ubuntu Linux 操作系统-清华大学开源软件镜像站下载

Ubuntu 是一个由全球化的专业开发团队建造的操作系统。它包含了所有您需要的应用程序&#xff1a;浏览器、Office 套件、多媒体程序、即时消息等。Ubuntu 是一个 Windows 和 Office 的开源替代品。 Ubuntu 的名称来自非洲南部祖鲁语或豪萨语的 “ubuntu” 一词&#xff08;译为…

总结超参数最优化

1.超参数是什么&#xff1f; 超参数是指的是比如SGD的一个学习率&#xff0c;或者是抑制过拟合时候的一个权重衰减率参数等等&#xff0c;这些参数需要一个合适的值才能很好的提升神经网络的学习效率 2.我们在进行超参数最优化的时候如何去做到超参数最优化&#xff1f; 2.1.设…

盘点十大国内外热门的SaaS点评平台

在B端市场里&#xff0c;企业如何调研、选择企服软件是困扰已久的问题。使用者需要选择合适的企服软件去提升企业内部效率&#xff0c;因此&#xff0c;选择一个合适的SaaS点评平台便非常重要。在SaaS点评平台&#xff0c;使用者可以了解、选择产品&#xff0c;而服务商可以收获…

撰写SCI论文好用的免费工具(下) - 易智编译EaseEditing

书接上文。易智编译再推荐几种好用的写作工具&#xff1a; 7.Grammarly Grammarly是谷歌浏览器的一个扩展程序&#xff0c;可在浏览器任一窗口中检查你文字的拼写和语法。无论是使用Google文档编写&#xff0c;撰写电子邮件还是发布文章&#xff0c;Grammarly都会指出英语错误…

CNN的识别机制

搬来这个给自己学学~~ 所有基础都要写一个 大佬勿怪 只为自己学习 近年来&#xff0c;CNN 因其优异的性能&#xff0c;在计算机视觉、自然语言处理等各个领域受到了研究者们的青睐。但是&#xff0c;CNN 是一个 「黑盒」 模型&#xff0c;即模型的学习内容和决策过程很难用人类…

Blazor组件自做十 : 光学字符识别 OCR 组件

光学字符识别 OCR 组件 演示地址 https://blazor.app1.es/ocr使用方法手机或者电脑点击拍照OCR可启动相机拍照,或者点击文件OCR选择文件,稍等片刻即可获得OCR结果.直接输入Url可识别在线图片AI表格识别 AI Form 演示地址 https://blazor.app1.es/aiform

读《趣学算法》:重开算法之门,时间复杂度与空间复杂度

14天阅读挑战赛 一、前言 程序 数据结构 算法 时过境迁&#xff0c;自己早已把算法的基础忘记得干干净净&#xff0c;最近看到CSDN发起了《趣学算法》的14天阅读挑战赛&#xff0c;兴趣再次油然而起&#xff0c;既然想学&#xff0c;就不用那么计较&#xff0c;马上就开始&a…

web权限提升-令牌窃取烂土豆dll劫持

目录 &#xff08;一&#xff09;Windows2008&7令牌窃取提升-本地 0x01 前置知识——令牌&#xff08;TOKEN&#xff09; 令牌有很多种&#xff1a; MSF伪造令牌实战 0x02 原理和利用范围 &#xff08;二&#xff09;烂土豆提权 1. 原理&#xff1a; 总结 2.环境搭…

Cosmos模块化功能链 走向亿级用户的超级Dapp时代

前言 加密不缺故事&#xff0c;而 Aptos 贡献了一次事故。 Move 生态的威力不应被轻视&#xff0c;跟随 Aptos 主网上线的&#xff0c;已经有域名服务 Aptos Names、钱包 Pontem、多签钱包 Momentum Safe、NFT 市场 Souffl3、借贷协议 Argo。 这是第一次众多应用和主网一起上…