欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-22 10:58:58
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