创建对象的两种方式
使用对象字面量的方式创建对象
var obj = {
name: '刘德华',
age: 18,
sayHi: function () {
console.log('hi');
}
};
// 使用对象
console.log(obj.name);
console.log(obj['age']); //注意,这里不能忘记掉引号。
obj.sayHi();
//属性采取的是属性名:属性值
//多组属性和方法中间采用的是逗号隔开
//方法后面跟的是函数。
使用 new Object创建对象
var object = new Object();
object.name = '刘德华';
object.age = 19;
object.sex = '男';
object.sayHi = function(){
console.log('忘情水');
}
//创建一个空对象,追加属性数据的方式。 对象名.属性名 = 值
//使用方式和上面都一样。
console.log(object.age);
自定义构造函数
上面两种方法,都只能一次创建一个对象,所以不太方便,如果我们需要一次创建多个对象的时候,就需要使用构造函数了。
// function 构造函数名(参数1....){ 构造函数名的首字母要大写
//this.属性名 = 属性值;
//this.方法名 = function(){}
// }
// 调用构造函数 new 构造函数名()
示例:
function Star(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.sing = function(){
console.log('唱歌');
}
}
var ldh = new Star('张学友',22,'女'); //构造函数要通过new来调用
console.log(ldh.name);
console.log(ldh.age);
console.log(ldh.sex);
new 关键字执行的过程
- new 构造函数可以产生一个新的空对象
- this 就指向我们创建的这个空对象
- 执行构造函数里面的代码(完成赋值操作)
- 返回这个对象。
this的指向问题
一般情况this指向他的调用者。
- this在函数中的指的是 window 。因为window调用了这个函数。
- this在对象中的指向是当前这个对象。
- this在构造函数中的指向当前的这个调用者。
赞 (0)