创建对象的三种方式
1.字面量创建
var obj = {
uname: '张三疯',
age: 18,
sayHi: function() {
console.log('hi~');
} }
格式:键值对、逗号分隔、匿名函数;
2.new Object
var obj = new Object(); // 创建了一个空的对象
obj.uname = '张三疯';
obj.age = 18;
obj.sayHi = function() {
console.log('hi~');
}
格式:保留对象名;等号赋值;分号分隔
3.构造函数
构造函数 创建类
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sing = function(sang) {
console.log(sang);
} }
调用函数 创建类下的对象
var ldh = new Star('刘德华', 18, '男');
var zxy = new Star('张学友', 19, '男');
格式:函数名首字母大写;添加 this指向;new 调用;
对象的调用
- 属性调用:obj.uname 或者 obj['uname']
- 方法调用: obj.sayHi();
new关键字执行过程
- new 构造函数可以在内存中创建了一个空的对象
- this 就会指向刚才创建的空对象
- 执行构造函数里面的代码 给这个空对象添加属性和方法
- 返回这个对象
遍历对象属性:for ... in 遍历
var obj = {
name: 'pink',
age: 18,
fn: function() {}
}
for (var k in obj) {
console.log(k); // name age fn (k输出的是属性名)
}
for (var k in obj) {
console.log(obj[k]); // pink 18 f(){} (obj[k]得到是属性值)
}
语法:for (变量 in 对象) { },变量名我们一般喜欢用k或者key