JavaScript Object
JavaScript对象简介
JavaScript中的对象,是一种无序的集合数据类型,它有若干个键值对组成。我们可以使用一对花括号来表示一个对象
// 1. 多个键值对之间用逗号分隔,最后一个键值对一般不加逗号 // 2. kye可以加引号也可以不加,但对于非法命名格式必须加引号 var myObject = { name: 'Mr hu', age: 20, 'phone-num': '123' }
对象的属性其实都是字符串形式,Array也为数组,所以Array的索引其实也是字符串,只不过用的时候可以不加引号。
JavaScript中的this
在面向对象语言中,this表示当前对象的一个引用。在JavaScript中,this不是固定不变的,它会随着执行环境的改变而改变。
- 在对象的方法中,this表示该方法所属的对象
- 在单独使用时,或在非严格模式下的函数中,this表示全局对象
- 在严格模式下的函数中,this为undefined
- 在事件中,this表示绑定该事件的元素
in操作符
JavaScript中可以通过使用 in操作符 来判断某个属性是否属于某个对象。这里要注意一下,如果该属性是对象继承过来的,使用 in 判断之后也会返回true。
var person = { name: "Mr hu" } console.log("toString" in person); //true
//这里说明一下:toString属性定义在object对象中,而所有对象最终都会在原型链上指向object对象,所以任何对象使用 in 都可以检测得到toString属性
hasOwnProperty()方法
该方法用于判断某个属性是否属于某个对象,并且不是该属性不是通过继承而来的。
var person = { name: "Mr hu" } console.log(person.hasOwnProperty("toString")); //false
for...in...循环
for...in... 是 for 循环的一个变体,它可以将对象的所有属性依次循环出来。
var person = { name: "Mr hu", age: 20 } for (let key in person) { console.log(key); //name age }
这里要说明一下,由于Array也是对象,而Array的每个索引被视为它的各个属性,所以使用for...in...循环出来的是它的每个索引。
var person =["I", "Love", "You"]; for (let i in person) { console.log(i); //0 1 2 }
蒹葭苍苍,白露为霜;
所谓伊人,在水一方。