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之后预解析问题得到了解决
浙公网安备 33010602011771号