【js】 js 中的对象

js 对象

对象包括属性和方法
对象也是变量。但是对象包含很多值。
在这里插入图片描述

1、对象属性

名称:值对 被称为属性。
如下例子:

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

在这里插入图片描述

2、对象方法

方法以函数定义被存储在属性中。
如下实例:

var person = {
  firstName: "Bill",
  lastName : "Gates",
  id       : 678,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

在这里插入图片描述

3、this关键词

在函数定义中,this 引用该函数的“拥有者”。
在上面的例子中,this 指的是“拥有” fullName 函数的 person 对象。
换言之,this.firstName 的意思是 this 对象的 firstName 属性。

4、访问对象属性

1)方法一:

person.lastName;

2)方法二:

person["lastName"];

5、访问对象方法

正确的写法:

var name = person.fullName();

!!!!!!如果 不使用 () 访问 fullName 方法,则直接返回函数的定义:
如下实例:

var name = person.fullName;

则直接返回 function() { return this.firstName + " " + this.lastName; }


6、一些栗子和注意点

栗子 1:对象中可以存储数字,字符串, 数组
加单引号或双引号的属性,用点操作符 . 和中括号操作符 [] 访问时是不一样的

var ourDog = {
  name: "Camper",
  "firstbird":"lookme bro",
  legs: 4,
  tails: 1,
  friends: ["everything!"]
};
console.log(ourDog.firstbird); //lookme bro
console.log(ourDog["firstbird"]); //lookme bro

加单引号或双引号的属性,用点操作符 . 和中括号操作符 [] 访问时是不一样的

栗子 2:属性名称中如果有空格,必须把属性名称用单引号或双引号包裹起来,并且只能使用中括号操作符 ([ ])访问

var myObj = {
  "Space Name": "Kirk",
  "More Space": "Spock",
  "NoSpace": "USS Enterprise"
};   //属性名称 有空格的,只能使用中括号操作符[ ] 访问
myObj["Space Name"]; // Kirk
myObj['More Space']; // Spock
myObj["NoSpace"]; // USS Enterprise

栗子 3:中括号操作符 [ ] 的另一个使用方式是用变量来访问一个属性。当你需要遍历对象的属性列表或查表时,这种方式极为有用。
当我们通过变量名访问属性的时候,不需要给变量名包裹引号。因为实际上我们使用的是变量的值,而不是变量的名称。

1var dogs = {
  Fido: "Mutt", Hunter: "Doberman", Snoopie: "Beagle"
};
var myDog = "Hunter";
var myBreed = dogs[myDog]; //就是这里,通过变量 myDog 来访问dogs 对象的属性 Hunter
console.log(myBreed); // "Doberman"

2var someObj = {
  propName: "John"
};
function propPrefix(str) {
  var s = "prop";
  return s + str;
}
var someProp = propPrefix("Name"); // someProp 现在的值为 'propName'
console.log(someObj[someProp]); // 输出 "John"

栗子 4:给对象添加新属性
(像更改属性一样添加新的属性)

var ourDog = {
  name: "Camper",
  legs: 4,
  tails: 1,
  friends: ["everything!"]
};
方法一:
ourDog.bark = "look-me";
方法二:
ourDog["bark"] = "look-me";

栗子 5:删除对象的属性

var ourDog = {
  name: "Camper",
  legs: 4,
  tails: 1,
  friends: ["everything!"],
  bark: "bow-wow"
};

delete ourDog.bark;
或者
delete ourDog["bark"];

栗子6:hasOwnProperty()检测对象属性是否存在
(检查对象是否有该属性。如果有返回true,反之返回false)

var myObj = {
  top: "hat",
  bottom: "pants"
};
myObj.hasOwnProperty("top"); // true
myObj.hasOwnProperty("middle"); // false

**7、JSON对象 **
(属性和值都要放在双引号中)

var myMusic = [
这个对象就是一个json对象
{
  "artist": "Daft Punk",
  "title": "Homework",
  "release_year": 1997,
  "formats": [
    "CD",
    "Cassette",
    "LP"
  ],
  "gold": true
}
];

数组中有多个 JSON 对象的时候,对象与对象之间要用逗号隔开。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值