javascript对象的创建
对象的创建方法
构造函数
系统自带的构造函数 Object()
自定义的构造函数 function Abc(){}
var abc1 = new Abc();
构造函数名:大驼峰式命名规则
- 系统自带的构造函数
var a=new Object()和var a={}有什么区别?
var a = {},a.toString()等Object对象所具有的方法,a都具有。由此也可以判断,其实a = {}就是a = new Objcet()的简单实现。
var Abc = {
name : 'deng',
age : 12,
sex: 'male',
health : 100,
smoke : function(){
console.log('I am smoking!');
this.health --;
},
drink : function(){
console.log('I am drinking!');
Deng.health ++;
}
}
- 自定义构造函数
自定义Car的构造函数 之后创建的对象都具有Car的属性及属性值
不同创建对象之间修改属性及属性值不相互影响
function Car(){
// var this = {}
this.name = 'BMW';
this.height = '123';
this.lang = '345';
this.weight = '456';
this.health = 100;
this.run = function(){
this.health --;
}
//return this;
}
var car1 = new Car();
var car2 = new Car();
包装类
- 原始值不能有属性和方法,当给它们添加属性的时候系统会自动进行包装类并销毁。
Boolean String Number
var num = 3;
num.len = 2;
//new Number(3).len =2; delete(在下一行执行前销毁)
console.log(num.len);//endefined
var str = "abcd";
str.length = 2;
//new String('abcd).length = 2; delete;(在下一行执行前销毁)
console.log(str);//abcd
//new String('abcd).length
//.length是string系统自带的属性。
console.log(str.length);//4