前端技术中对JavaScript对象的学习

对象


创建对象

创建新对象有两种不同的方法:

  • 使用 Object 定义并创建对象的实例。
  • 使用函数来定义对象,然后创建新的对象实例。

new Object

在 JavaScript 中,几乎所有的对象都是 Object 类型的实例,它们都会从 Object.prototype 继承属性和方法。

Object 构造函数创建一个对象包装器。

Object 构造函数,会根据给定的参数创建对象,具体有以下情况:

  • 如果给定值是 null 或 undefined,将会创建并返回一个空对象。
  • 如果传进去的是一个基本类型的值,则会构造其包装类型的对象。
  • 如果传进去的是引用类型的值,仍然会返回这个值,经他们复制的变量保有和源对象相同的引用地址。
  • 当以非构造函数形式被调用时,Object 的行为等同于 new Object()。

语法格式:

复制代码
// 以构造函数形式来调用
new Object([value])

字面量创建

也可以使用对象字面量来创建对象,语法格式如下:

复制代码
var myObject = {
    key1: value1,
    key2: value2,
    // 更多键值对...
};
  • myObject: 变量名,用于引用整个对象。
  • key1, key2: 属性名称,可以是字符串或标识符。
  • value1, value2: 属性的值,可以是任意 JavaScript 数据类型,包括数字、字符串、布尔值、函数、数组、甚至其他对象。

使用循环遍历对象属性

JavaScript for...in 语句循环遍历对象的属性。

语法

复制代码
for (variable in object)
{
    执行的代码……
}

注意: for...in 循环中的代码块将针对每个属性执行一次。

示例:

复制代码
var person={fname:"John",lname:"Doe",age:25}; 
 
for (x in person)
{
    txt=txt + person[x];
}

对象中的方法

this

this 关键字在函数体内使用时,其值取决于函数是如何被调用的。它通常指向调用该函数的对象。但是,this 的行为在JavaScript中可能有些复杂,因为它不是由函数声明的位置决定的,而是由函数调用的方式决定的。

  • 在全局环境中,this 通常指向全局对象(在浏览器中是 window,在Node.js中是 global)。
  • 在对象的方法中,this 指向调用该方法的对象。
  • 在构造函数中,this 指向新创建的对象实例。
  • 使用箭头函数时,this 被绑定到其定义时的上下文,而不是执行时的上下文。

apply

apply 方法调用一个函数,同时为其设置 this 值(称为函数运行的上下文)和一个数组(或类数组对象)作为参数列表。

复制代码
function greet(greeting, punctuation) {  
  console.log(greeting + ', ' + this.name + punctuation);  
}  
  
const person = {  
  name: 'John'  
};  
  
greet.apply(person, ['Hello', '!']); // 输出: Hello, John!

在这个例子中,greet.apply(person, ['Hello', '!']) 调用 greet 函数,并将 this 设置为 person 对象,同时将 ['Hello', '!'] 作为参数传递给 greet 函数。

call

call 方法的作用与 apply 类似,但它接受一个参数列表作为单独的参数,而不是一个数组。

复制代码
function greet(greeting, punctuation) {  
  console.log(greeting + ', ' + this.name + punctuation);  
}  
  
const person = {  
  name: 'John'  
};  
  
greet.call(person, 'Hello', '!'); // 输出: Hello, John!

在这个例子中,greet.call(person, 'Hello', '!') 调用 greet 函数,并将 this 设置为 person 对象,同时将 'Hello''!' 作为参数传递给 greet 函数。

总结

  • this 关键字用于在函数体内部引用当前对象。
  • applycall 方法用于在调用函数时显式地设置 this 的值,并传递参数。
  • apply 接受一个数组(或类数组对象)作为参数列表,而 call 接受单独的参数。
  • 使用这些方法可以在不同上下文中重用函数,使得JavaScript更加灵活和强大。
posted @   BingBing爱化学-04044  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示