对象的增删改查
var mrDeng = {
name : "MrDeng",
age : 40,
sex : "male",
health : 100,
smoke : function () {
console.log('i am smoking!cool !!')
this.health --;
console.log(this.health)
},
drink : function () {
console.log('i am drinking')
this.health ++;
}
}
// 增
mrDeng.wife = "xiaoliu";
// 查
console.log(mrDeng.age)
// 改
mrDeng.sex = "female"
// 删 >> 必须借助delete操作符
delete mrDeng.age;
对象的创建方法
1.var obj = {} >> plainObject 对象字面量/对象直接量
2.构造函数创建方法
1)系统自带的构造函数 >> Object() 相当于一个工厂, var obj = new Object() //执行一次生产一个对象,长得一模一样但是相互独立。
2)自定义
//构造函数的命名规则 要符合大驼峰式的命名规则
function Car() {
this.name = "BMW"
this.height = "1400"
this.lang = "4900"
this.weight = 1000;
}
var car = new Car();
var car1 = new Car();
car.name = "Maserati"
car1.name = "Merz"
console.log(car)
console.log(car1)
this
- 预编译过程中,this指向window
- 全局作用域里,this指向window
- call和apply可以改变函数运行时this的指向
- obj.func(),func里的this指向obj
arguments.callee
function test() {
console.log(arguments.callee) //test() {console.log(arguments.callee)} 指向函数自身引用
console.log(arguments.callee == test) //true
}
test();
// 求阶乘
var num = (function (n) {
if (n == 1) {
return 1
}
return n * arguments.callee(n-1)
}(5))
console.log(num)