JavaScript 对象

JavaScript 对象是拥有属性和方法的数据。可以使用字符来定义和创建 JavaScript 对象,定义 JavaScript 对象可以跨越多行,空格跟换行不是必须的。

JavaScript 对象属性

通常认为 “JavaScript 对象是键值对的容器”。键值对通常写法为 name : value (键与值以冒号分割)。键值对在 JavaScript 对象通常称为对象属性,JavaScript 对象是属性变量的容器。
可以通过两种方式访问对象属性。
objectName.propertyNameobjectName['propertyName'] 两种方式访问对象属性的区别:
1.点方法后面跟的必须是一个指定的属性名称,而中括号方法里面可以是变量。
2.中括号方法里面的属性名可以是数字,而点方法后面的属性名不可以是数字
3.当动态为对象添加属性时,必须使用中括号[],不可用点方法

更新对象属性

当你创建了一个对象后,你可以用.[]来更新对象的属性。

var boy = {"name": "Jack","age": 8,"friends": ["Lily"]};

更改它的名称为“ Tom”,这有两种方式来更新对象的名称属性:
boy.name = “Tom”;
boy[“name”] = “Tom”;

添加对象属性

可以像更改属性一样给对象添加属性。

var boy = {"name": "Jack","age": 8,"friends": ["Lily"]};
boy.height = 130;
删除对象属性

我们同样可以删除对象的属性,例如:
var boy = {“name”: “Jack”,“age”: 8,“friends”: [“Lily”]};

var a = boy[‘age’]; // a 等于 8
// 删除 age 属性
delete boy[‘age’]; // 等价于 delete boy.age
var b = boy[‘age’]; // 等于 undefined

对象方法

对象方法是一个包含函数定义的属性。
可以通过以下语法来调用方法:
对象名.方法名() 使用了 String 对象的 toUpperCase() 方法来将文本转换为大写:

var message = "Hello";
var a = message.toUpperCase();

代码执行后,a 的值将是:HELLO方法是作为对象属性存储的函数

使用 [] 读取对象属性

对象构造器

使用函数来构造对象:

function person(firstname, lastname, age, friend)
{
    this.firstname = firstname;
    this.lastname = lastname;
    this.age = age;
    this.friend = friend;
}

在JavaScript中,this通常指向的是正在执行的函数本身,或者是指向该函数所属的对象(运行时)

创建 JavaScript 对象

一旦有了对象构造器,就可以创建新的对象实例

function person (name, age) {
  this.name = name;
  this.age = age;
}
var John = new person("John", 25);
var Loen = new person("Loen", 28);
对象初始化

使用英文大括号{}创建单个对象

var John = {name: "John", age: 25};
var Loen = {name: "Loen", age: 28};
添加方法

方法是存储在对象属性中的函数,使用以下方式创建对象函数:
methodName : function() { code lines } 使用以下方式访问对象函数:
objectName.methodName()this关键词是当前对象的引用,可以使用 this来访问对象属性和方法。
在构造函数中定义方法:

function person(name, age) {
  this.name = name;  
  this.age = age;
  this.changeName = function (name) {
    this.name = name;
  }
}
var a = new person("Loen", 28);
a.changeName("John");

定义了一个名为changeName的方法,该方法是一个函数,它接受参数名称并将其分配给对象的 name 属性。

也可以在构造函数外部定义一个函数,通过函数名关联到对象的属性上:

function person(name, age) {
  this.name= name;  
  this.age = age;
  this.birthyear = bornyear; // 关联 bornyear 函数
}
function bornyear() {
  return new Date().getFullYear() - this.age; 
}

var a = new person("Loen", 29);
document.write(a.birthyear());

Java一个键值对是什么数据类型 键值对js_键值对


Java一个键值对是什么数据类型 键值对js_键值对_02

以上代码中 new Date().getFullYear()是获取今年完整的年份时间,将对象的 birthyear 属性赋予 bornYear 函数。当通过对象调用 bornYear 函数时, bornYear 函数中 this指向这个对象。
将函数关联到对象属性时不需要写括号。要通过对象的属性名调用函数而不是直接调用函数。