object,{}
1.对象属性的增删改查
var mrDeng = {
name: 'MrDeng',
age: 40,
sex: "male",
health: 100,
smoke: function () {
console.log('smoke!');
this.health--;
},
drink: function () {
console.log('drink!');
this.health--;
}
}
console.log(mrDeng);
console.log(mrDeng.smoke(), mrDeng.health);
//属性的增删改查
mrDeng.child = 'xiaodeng';
console.log(mrDeng.child);
delete mrDeng.age;
console.log(mrDeng);
mrDeng.child = 'xiaodeng02';
console.log(mrDeng.child);
2.对象创建方法
1.var obj = {}
2.构造函数
1)系统自带 new Object();Array(); Number(); Boolean(); String(); Data();
2)自定义
3.Object.create(原型)方法
// var obj = new Object();
// obj.name = 'abc';
// obj.sex = 'female';
function Car(color) {
this.color = color;
this.name = 'BMW';
this.height = '1400';
this.lang = '4900';
this.weight = 1000;
this.run = function () {
this.health--;
}
}
var car = new Car();
var car1 = new Car();
var car2 = new Car('red');
var car3 = new Car('green');
// 两个不同的对象
// car.name = 'ms';
// car1.name = 'mz';
构造函数内部原理
- 在函数体最前面隐式的加上 this = {}
- 执行this.xxx = xxx;
- 隐式的返回this;
function Student(name, age, sex) {
// var this = {};
this.name = name;
this.age = age;
this.sex = sex;
this.grade = 2017;
// return this;
}
var student = new Student('xiaoming', 18, 'male');
console.log(student);
包装类
new String();
new Boolean();
new Number();
var str = 'abcd';
str.length = 2;
// new String('abcd').length = 2; delete;
console.log(str);
// abcd
var arr = ['a', 'b', 'c', 'd'];
arr.length = 2;
console.log(arr);
//['a', 'b']
测试1:
var str = "abc";
str += 1; // abc1
var test = typeof (str); //String
if (test.length == 6) {
test.sign = "typeof返回结果可能是String";
// new String(test).sign = "..."; delete;
}
console.log(test.sign);
//undefined
测试2:
function employee(name, code) {
this.name = "wangli";
this.code = "A001";
}
var newmp = new employee("zhangming", "A002");
console.log('姓名:' + newmp.name);
console.log('代码:' + newmp.code);
// this.zhangming = "wangli";
// this.A002 = "A001";
// 姓名:"wangli"
// 代码:"A001"
测试3:
function Person(name, age, sex) {
var a = 0;
this.name = name;
this.age = age;
this.sex = sex;
function sss() {
a++;
console.log(a);
}
this.say = sss;
}
var oPerson = new Person();
oPerson.say(); // 1
oPerson.say(); // 2
var oPerson1 = new Person();
oPerson1.say(); //1
测试4:
var x = 1,
y = z = 0;
function add(n) {
return n = n + 1;
}
y = add(x);
function add(n) {
return n = n + 3;
}
z = add(x);
console.log(x, y, z);
// x:1
// y:0, 4
// z:0, 4