Day8

一:什么是构造函数?

构造函数是函数的另一种格式,一般函数名字规则为大驼峰式命名,可以通过实例化对象进行批量化生产,节省空间,提高效率,构造函数需要通过new进行操作,如果new了,在构造函数里隐式的产生一个对象,然后函数返回这个对象,对象里有__proto__ ,实例化对象的__proto__和构造函数的prototype相等

二:创建对象的方式有哪些?举例说明

字面量:var obj={}

通过构造函数:var a=new 函数名字()

工厂模式:

function createStudent(name,sex,grade){
var o = new Object();
o.name = name;
o.sex = sex;
o.grade = grade;

o.sayName = function(){
console.log(this.name);
}
return o;
}
var s1 = createStudent('Claiyre','famale',1);

原型模式:通过原型添加属性,然后实例化对象继承原型上的属性

三:js中实现继承的方式

function a(target,origin){

function f(){}

f.prototype=origin.prototype

target.prototype=new f()

target.constructor=target

target.superF=origin  //超级父类

}

四:什么是闭包?有什么作用

闭包的含义:函数里作用域的延续,因为函数嵌套,里面的函数被保存出来,就形成闭包

危害:会造成内存泄漏(因为一直存放东西,有用的东西没有地方存储,就会被泄漏,就像沙子一样)

作用:延长作用域链,私有化变量,累加

五:什么是预解析

预解析:在代码执行之前,浏览器本身会对代码进行预编译,进行变量提升,以及变量覆盖,主要是var 和函数 但在es6之后引入const和let之后预解析问题得到了解决

posted @ 2021-02-14 18:08  heartru  阅读(27)  评论(0)    收藏  举报