【JavaScript】JS基础问题总结大全,简单学习JS,看这个系列就够了!(四)


一、JS new一个对象的过程

1.创建一个空对象Var obj={};

2.设置新对象的constructor属性为构造函数的名称,将新对象的__proto__指向构造函数的prototype
Obj.proto==ClassA.prototype

3.使用新对象调用构造函数,将构造函数中this指向新实例对象,
ClassA.call(obj)

4.将初始化完毕的新对象地址,保存到等号左边的变量中。

5.若构造函数中返回this或返回值是基本(number,string,bool,null,undefined)或者无返回值,则返回新的实例对象,若是引用类型的值,则返回这个引用类型。

二、requestAnimationFrame

与setTimeout相比,requestAnimationFrame最大的优势是由系统来决定回调函数的执行时机。具体一点讲,如果屏幕刷新率是60Hz,那么回调函数就每16.7ms被执行一次,如果刷新率是75Hz,那么这个时间间隔就变成了1000/75=13.3ms,换句话说就是,requestAnimationFrame的步伐跟着系统的刷新步伐走。它能保证回调函数在屏幕每一次的刷新间隔中只被执行一次,这样就不会引起丢帧现象,也不会导致动画出现卡顿的问题。

基本语法
可以直接调用,也可以通过window来调用,接收一个函数作为回调,返回一个ID值,通过把这个ID值传给window.cancelAnimationFrame()可以取消该次动画。

handlerId = requestAnimationFrame(callback)//callback为回调函数
cancelAnimationFrame(handlerId)//取消动画

三、this判断规则

1:函数直接用圆括号运行,上下文是window对象。 e.g. fun()
2:对象打点调用函数,上下文是这个对象 e.g. obj.fun()
3:数组(类数组对象)中枚举出函数,上下文是这个数组(类数组对象)
4:定时器调用函数,上下文是window
5:被当作了事件处理函数,上下文是触发事件的DOM元素
6:用new调用函数,上下文是函数体内创建的空白对象
7: 用apply、call更改上下文

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值