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

相关文章
|
3天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
23 3
|
1天前
|
JSON JavaScript 前端开发
js将json字符串还原为json对象
【5月更文挑战第14天】js将json字符串还原为json对象
12 1
|
2天前
|
设计模式 存储 消息中间件
JavaScript观察者模式:实现对象间的事件通信!
JavaScript观察者模式:实现对象间的事件通信!
|
2天前
|
设计模式 JavaScript 前端开发
JavaScript原型模式:实现对象共享属性和方法!
JavaScript原型模式:实现对象共享属性和方法!
|
2天前
|
JavaScript 前端开发 开发者
深入理解JavaScript对象创建
深入理解JavaScript对象创建
|
3天前
|
JavaScript 前端开发
js用Date对象处理时间
以上就是JavaScript中Date对象处理时间的一些基本方法。
12 6
|
3天前
|
JavaScript 前端开发
在JavaScript中,函数原型(Function Prototype)是一个特殊的对象
【5月更文挑战第11天】JavaScript中的函数原型是一个特殊对象,它为所有函数实例提供共享的方法和属性。每个函数在创建时都有一个`prototype`属性,指向原型对象。利用原型,我们可以向所有实例添加方法和属性,实现继承。例如,我们定义一个`Person`函数,向其原型添加`greet`方法,然后创建实例`john`和`jane`,它们都能调用这个方法。尽管可以直接在原型上添加方法,但推荐在构造函数内部定义以封装数据和逻辑。
18 2
|
3天前
|
JavaScript 前端开发
JavaScript 提供了多种方法来操作 DOM(文档对象模型)
【5月更文挑战第11天】JavaScript 用于DOM操作的方法包括获取元素(getElementById, getElementsByClassName等)、修改内容(innerHTML, innerText, textContent)、改变属性、添加/删除元素(appendChild, removeChild)和调整样式。此外,addEventListener用于监听事件。注意要考虑兼容性和性能当使用这些技术。
9 2
|
3天前
|
存储 JavaScript 前端开发
JavaScript对象方法详解
JavaScript对象方法详解
17 1
|
3天前
|
JavaScript
js多维数组去重并使具有相同属性的对象数量相加
js多维数组去重并使具有相同属性的对象数量相加
12 1