对象相关 Object.defineProperty(obj,prop,{ value:值 //设置属性的值 writable:true | false //默认为false,确定目标属性是否能更改,一些重要的不能改的属性会用到 enumerable:true | false //默认为false,确定目标属性是否能被枚举,即是否可以被循环遍历到 configurable:true | false 默认为false,确定目标属性是否能被删除更改特性 }) 函数相关 函数的3种定义方式 1.function 函数名(){} 2.let a = function(){} 3.let b = new Function('参数1‘,’参数2‘,’函数体‘) //不提倡,理解函数也是对象就可以了
改变函数this指向的三种方法 1.call(this.tar,参数1,参数2…) 2.apply(this.tar,[数组]) 3.bind(this.tar,参数1,参数2…) //和前两个的区别是不会调用函数,实际情况中用的比较多