JS(第十课)JS中的对象(二)

简介: JS(第十课)JS中的对象(二)

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

 

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

方式一

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.hand
console.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;
    // 自己定义的一个函数方法为 CreteObjectStructure
    this.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

相关文章
|
1月前
|
JavaScript 前端开发
JavaScript Date(日期) 对象
JavaScript Date(日期) 对象
38 2
|
5天前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
1天前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
5天前
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
|
29天前
|
存储 JavaScript 前端开发
JavaScript 对象的概念
JavaScript 对象的概念
35 4
|
27天前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
29 1
|
28天前
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
15 2
|
30天前
|
JavaScript 前端开发 Unix
Node.js 全局对象
10月更文挑战第5天
21 2
|
1月前
|
存储 JavaScript 前端开发
js中的对象
js中的对象
18 3
|
1月前
|
JavaScript 前端开发
JavaScript Math(算数) 对象
JavaScript Math(算数) 对象
20 4