/*对象:可以有属性和方法
对象的创建方法 1:var obj ={} 对象字面量/对象直接量
2:构造函数 2.1:系统自带的函数 object() Array() eg:var obj = new Object();
2.2 自定义要符合大驼峰式命名规则 function A(){} var aa= new A();
*/
var first = {
name: "这是一个对象",
age: 30,
sex: "女",
health: '100',
smoke: function () {
console.log(" I am smoking!");
this.health--;
},
drink: function () {
console.log(" I am drinking !");
this.health++;
}
}
first.smoke();
/*增加属性*/
first.wife = "这是另外一个对象";
/*查看属性*/
console.log(first.sex);
/*修改属性*/
first.sex = "nan";
console.log(first.sex);
/*删除属性*/
delete first.sex
console.log(first);
/*构造函数
前提必须要有new
内部原理:1:在函数体的最前面隐式的加上this = {}
2:执行this.xxx = xxx;
3:隐式的返回this
*/
function Car( color) {
this.name = 'bmw';
this.height = '1400';
this.health = '100';
this.run = function () {
this.health --;
}
this.color =color;
}
/* new Car();创建一个对象*/
var car = new Car('red');
console.log(car);
/*包装类
原始值没有属性和方法*/
var number = 4;
number.length = 3; //这是相当于new Number(4).length =3; delete
/*在这里会重新new Number(4).length 与上面的不一样,这里返回undefined*/
console.log(number.length)
var num = new Number();
var str = new String('abcd');
str.name = '字符串';
console.log(str)
/*字符串本身就有length 的属性,其他的原始值是没有这个属性的*/
console.log(str.length);
var bool = new Boolean();