obj.sayName = function(){
return this.name;
};
return obj;
}
var p1 = new CreatePerson(“longen”,‘28’,‘男’);
var p2 = new CreatePerson(“tugenhua”,‘27’,‘女’);
// 返回都是object 无法识别对象的类型 不知道他们是哪个对象的实列
console.log(typeof p1); // object
console.log(typeof p2); // object
console.log(p1 instanceof Object); // true
装饰者模式
在不改变原对象的基础上,通过对其进行包装拓展(添加属性和方法)使原有对象更加满足用户的复杂需求。
let decorate = function(input, fn){
let input = document.getElementById(“input”);
if(typeof input.onclick === “function”){
var oldClickFn = input.onclick;
input.onclick = function(){
oldClickFn();
fn();
}
}
else{
input.onclick = fn();
}
}
上面是一个简单的例子,讲的是为所有的input输入时做一定的操作。
代理模式
由于一个对象不能直接应用另一个对象,所以需要通过代理对象其搭配中介作用
跨域就很好的反映了这一点。
发布订阅者(观察者)模式
定义了一种依赖关系, 解决了主体对象与观察者之间功能的耦合
-
注册接口:将订阅者的注册的消息推入消息队列中
-
发布信息接口:发布者发布 一个消息就将所有订阅者的消息一次执行
-
移除信息接口:将订阅者注销的消息从消息队列中清除
var Observer = (function(){
var _message = {};
return {
//注册接口
regist: function(type, fn){
//如果消息此消息不存在则应该创建一个消息类型
if(typeof _message[type] === ‘undefined’){
//将动作推入到该消息对一个的动作执行队列中
_message[type] = [fn];
}else{
_message[type].push(fn);
}
},
//发布信息接口
fire: function(type, args){
//如果该消息没有被注册,则返回
if(!_message[type]){
return;
}
//定义消息信息
var events={
type: type,
args: args || {}
}
for(let i=0; _message[type].length; i++){
_message[type][i].call(this, events);
}
},
//移除信息接口
remove: function(){
//如果消息队列存在
if(_message[type] instanceof Array){
//从最后一个消息动作开始遍历
for(let i=_message[type].length-1; i>=0; i–){
//如果存在该动作则移除相应动作
_message[type][i] === fn && _message[type].splice(i, 1);
}
}
}
}
})();
//订阅一条消息
Observer.regist(‘test’, function(e){
console.log(e.type, e.args.msg);
});
//发布上条消息
Observer.fire(‘test’, {msg: ‘发布成功啦~’});
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等
详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车免费领取!
前端视频资料:
人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等
详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车免费领取!
[外链图片转存中…(img-2gG6nKvn-1712317170741)]
前端视频资料: