- object类型(对象类型)
- 对象的创建
- 创建一个对象,有两种方法,第一种叫做字面量,第二种是用new Object();
- 字面量创建方式(代码)
- 对象的创建
var obj={
name: "123",
age:18,
sex:"男"
};
console.log(obj);//
console.log(obj.name); //123
console.log(typeof obj);// object
{}就是对象的界定符,就是对象的字面量。对象有属性,name,age,sex都是这个obj对象的属性(property)属性就是对象的特点。
对象 对象就是属性的无序集合。 我们可以通过点语法来获得一个对象的属性。
例如obj.name
对象格式 (就是k-v对的集合)
{
k:v,
k:v,
k:v
}
注意的是json对象中,所有的k(键名)必须加引号,而对象字面量中的k不需要加引号。
JSON(JavaScript Object Notation) JS对象表示法。JSON是一个用于交换的格式,需要兼容后台语言,被后台语言所识别,所以必须加引号。
对象字面量的k(键名)必须加引号的情况,必须通过方括号来访问字面量
- k是特殊字符
- k是数字 obj[“123”]
- k是有空格
- k是关键字
- 保留字
var obj={
"name":"wdd",
"age":18,
"sex":"男",
"study score": 78
}
console.log(obj["study score"])//78
console.log(obj["a"+"ge"])// 18
var a="sex";
console.log(obj[a]); // 男
- new Object()
var obj=new Object(); //这是一个空对象,里面没有任何属性
obj.name="wdd";
obj.age=18;
obj.sex="男";
console.log(obj);
console.log(obj.age);
console.log(typeof obj);
new 是一个运算符,表示新创建一个对象。
对象的属性值可以是任何东西,比如字符串,布尔值,数字,函数。
var obj={
a:1,
b:"haha",
c:true,
d:/[A-Z]/g,
e:function(){
alert(1+2);
},
f:{
p:1
}
}
特别的,当对象的属性的值是一个函数的时候,我们称这个函数是对象的方法。
- 对象的方法
var kay={
name: "kay",
age:18,
sex:"男",
sayHello: function(){
alert("你好,我是"+this.name);
alert("今年"+this.age+"岁了");
alert("我是可爱的小"+this.sex+"生");
}
}
//调用对象的方法
kay.sayHello();
方法函数里面的this指的是这个对象。
- this指向的问题
//直接yong()调用函数,函数里面的this指的是window对象
function fun(){
alert(this);
}
//fun(); //object window
//函数绑定给了一个事件,那么事件发生的时候函数将执行,this就是触发事件的那个HTML对象
var box=document.getElementById("box");
box.onclick=fun;
//用定时器来调用函数,函数里面的this是window
setInterval(fun,1000);
//用对象打点(方法)来调用函数,函数里面的this指的是这个对象。
//用apply、call。 可以设置this对象。
- 相似对象(了解一下)