Day8
1-什么是构造函数?
构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化.构造函数具有一些特殊的性质
构造函数的名字必须与类同名
构造函数没有返回类型,它可以带参数,也可以不带参数
声明类对象时,系统自动调用构造函数,构造函数不能被显式调用
构造函数可以重载,从而提供初始化类对象的不同方法
若在声明时未定义构造函数,系统会自动生成默认的构造函数,此时构造函数的函数体为空
2-创建对象的方式有哪些?举例说明
调用系统的构造函数创建对象
var obj = new Object(); //构造函数
添加属性
obj.name = "小白";
添加方法
obj.play = function() {
console.log("打游戏");
}
获取对象的属性或者是调用方法
console.log(obj.name);
obj.play();
工厂函数和new Object创建对象 创建多个对象
function createObj(name) {
var obj = new Object();
obj.name = name;
obj.xw = function() {
console.log(this.name + "不好");
}
return obj
}
实例化
var aa = createObj("小白");
aa.xw();
var bb = createObj("小红");
console.log(aa, bb);
构造函数创建对象
定义构造函数
function c(name) {
this.name = name;
this.sayHi = function() {
console.log("你好");
}
}
使用构造函数创建对象
var sun = new c("吕布");
console.log(sun);
字面量创建对象
var obj = {
name: "华佗",
sayHi: function() {
console.log("医术高超")
}
}
设置和获取属性的另一种方法
obj[name] = "华佗";
console.log(obj["name"]);
obj["sayHi"]();
3-js 种实现继承的方式
①构造函数继承②原型链继承③组合继承④class继承⑤实例继承⑥拷贝继承⑦寄生组合继承
4-什么是闭包?有什么作用?
闭包是指有权访问另一个函数作用域中的变量的函数
一个内部函数,有权访问包含其的外部函数中的变量,就形成了闭包。
作用:
一种就是上面提到的使函数外部能够读取到函数内部的变量;
让函数内部的变量一直隐藏/保存在内存中(JavaScript的垃圾回收机制:解释器检测到没有程序在使用这个对象了,当它确定其是无用的时候,JavaScript的解释器就把会把该对象所占用的内存释放掉)。
5-什么是预解析?
预解析指的就是,在js文件或者script里面的代码在正式开始执行之前,进行的一些解析工作。这个工作很简单,就是在全局中寻找var关键字声明的变量和通过function关键字声明的函数

浙公网安备 33010602011771号