js容易混淆的方法

js容易混淆的函数:
①Object.getOwnPropertyDescriptor
——读取某个对象特定属性的属性描述符(value / writable / enumerable / configurable)

这个方法接受两个参数:(属性所在对象 , 要读取其描述符的属性名称),返回值是一个对象。

②Object.defineProperty ——设置某个对象(单个)属性的特性或让新建属性具有某种特性

这个方法接受三个参数:(要修改的对象 , 要创建或修改的属性 、 属性描述符对象)。

③Object.defineProperties —— 设置某个对象(多个)属性的特性或让新建属性具有某种特性

这个方法接受两个参数:(修改的对象 , 映射表–包含所有新建或者修改属性的名称和属性描述符)。

④isPrototypeOf ——确定对象与原型之间存在的关系

⑤Object.getPrototypeOf ——方便地取得一个对象的原型
⑥hasOwnProperty ——检测一个属性是存在于实例中,还是存在于原型中

二、
splice(0,0,1) //增删原数组

slice() // 返回新数组,不改变原数组

split() // 拆分数组

三、绑定
apply(null,[1,2]) // 第二个参数,必须是数组
bind(null,1,2)() //返回一个函数,要执行必须加()
call(null,1,2) //

四、展开运算符和扩展运算符
…和…rest

五、防抖和节流
1.debounce 实现一个搜索功能,当输入框中的文字改变时,就去请求结果。
可以用第三方插件
npm i --save lodash.debounce

debounce: function(){
            let that = this
            if(timer){
                clearTimeout(timer)
            }
            timer = setTimeout(function () {
                console.log('输入')
                timer = undefined;
            },2000)
        }

2.throttle 实现节流技术,比如scroll事件
防抖和节流都可以用于 mousemove、scroll、resize、input等事件,他们的区别在于防抖只会在连续的事件周期结束时执行一次,而节流会在事件周期内按间隔时间有规律的执行多次。

 throttle: function(){
            let that = this
            let now = +new Date();
            if(lastTime && lastTime - now < 2000){
                clearTimeout(timer)
            }
            timer = setTimeout(function () {
                console.log('点击')
                lastTime = +new Date()
            },200)
        }

你可能感兴趣的:(js学习)