概述:
对象是一组“键值对”的集合。
var obj = {
str1: 'Hello',
str2: 'World'
};
var obj = {
str1: 'Hello', ——> 键值对
str2: 'World'
};
键名 <—— str:‘hello’ ——> 键值
键名
所有对象的键名都是字符串。所以加不加引号都代表它是字符串。
var obj={
100:'键值1'
}
调用:obj.100 ??
obj['100']
键值
键值可以是任何数据类型。也可以是函数
var obj={
fn:function(x){
console.log(x)
}
}
调用:obj.fn(3)
对象的引用
对象名.键值 该方法可读可写
var o1 = {};
var o2 = o1;
o1.a = 1;
o2.a // 1
o2.b = 2;
o1.b //2
属性的操作
1.读取属性
var obj = {
str: 'Hello World'
};
obj.p
obj['p'] 使用方括号必须将键名引起来,否则会当做是一个变量
2.删除属性
var obj={ a:1,b:2,c:3}
delete obj.c
console.log(obj) //{a:1,b:2}
3.属性赋值
var obj = {};
obj.a = 'Hello';
obj['b'] = 'World';
4.查看所有属性 object.keys()
var obj = {};
obj.a = 'Hello';
obj['b'] = 'World';
object.keys(obj) //['a','b'] 返回一个数组
5.检测数据是否在对象中 a in obj
var obj={ a:1,b:2,c:3}
关键字 in
a in obj //true
d in obj //false
对象的遍历
for.. in循环
var obj={ a:1,b:2,c:3}
for (var i in obj){
console.log(i)//遍历所有键名
console.log(obj[i]) //遍历所有键值
}
With语句
var obj = {p1: 1, p2: 2,};
with (obj) {
p1 = 4;
p2 = 5;
}
// 等同于
obj.p1 = 4;
obj.p2 = 5;
with方法,绑定的对象并不明确。只做了解,很少用到。
对象中的this
this 永远指向最后调用它的那个对象。默认指向window。
var name = "我是外部";
function a() {
var name = "我是内部";
console.log(this.name);
console.log("inner:" + this);
}
a();
console.log("outer:" + this)
this 永远指向最后调用它的那个对象。默认指向window。
var name = "我是外部";
var a = {
name: "我是内部",
fn : function () {
console.log(this.name);
}
}
a.fn();
网友评论