当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 【JavaScript】JS基础问题总结大全,简单学习JS,看这个系列就够了!

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

2020年11月26日  | 移动技术网IT编程  | 我要评论
JS基础问题总结大全(四)一、JS new一个对象的过程二、requestAnimationFrame三、this判断规则一、JS new一个对象的过程1.创建一个空对象Var obj={};2.设置新对象的constructor属性为构造函数的名称,将新对象的__proto__指向构造函数的prototypeObj.proto==ClassA.prototype3.使用新对象调用构造函数,将构造函数中this指向新实例对象,ClassA.call(obj)4.将初始化完毕的新对象地址,保存


一、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更改上下文

本文地址:https://blog.csdn.net/weixin_44442581/article/details/110206204

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网