1. 关于new
1 | function fn(){ |
答:this就是fn,它有__proto__
属性,__proto__
指向这个fn的原型
fn的原型里有两个属性{contructor: fn()}
和__proto__
(指向Object.prototype)
2. MVC
MVC是Model View Controller
View:是这个js模块对应在html中的部分,就是展示给用户看的那一部分Model:可以从服务器获得数据,把数据传给Controller。还要将Controller监听到的用户提交的数据上传到服务器。
Controller:调用model的数据,用来更新view。还要监听用户在view上的操作,获取用户提交的数据,传给model。
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34window.Model = function(options){
let resourceName = options.resourceName;
return {
init : function(){},
fetch: function(){},
save: function(){}
}
}
window.View = function(selector){
return document.querySelector(selector);
}
window.Controller = function(options){
let init = options.init;
let object = {
view: null,
model: null,
init: function(view,model){
this.view = view;
this.model = model;
this.model.init();
init.call(this.view);
this.bindEvents.call(this)
}
};
for(let key in options){
if(key !== 'init'){
object[key] = options[key]
}
}
return object;
}
3. 用函数模拟一个类
1 | function Animal(species) { |
4. promise
1 | promiseTest = function (a,b){ |
使用:1
2
3
4
5
6
7
8promiseTest(4,6).then(
() => {
console.log('大于5');
},
() => {
console.log('小于5')
},
) //'大于5'