手写js功能实现
关于一些js对象方法的实现
这个东西不好和你解释,因为我是菜狗
这个作者很懒,什么都没留下…
展开
-
手写有关js继承
1、写一个原型链继承function SuperType() { this.property = true;}SuperType.prototype.getSuperValue = function() { return this.property;}function SubType() { this.subproperty = false;}SubType.prototype = new SuperType();SubType.prototype.getSubValue = f原创 2020-08-31 18:28:46 · 137 阅读 · 0 评论 -
手写节流和防抖
1、 节流和防抖分别是什么?函数节流:不断触发一个函数,只执行第一次,只有大于设定的执行周期后才会执行第二次。即在指定时间段内只执行一次,直到指定时间段结束,周而复始。函数防抖:不断触发一个函数,在规定时间内只让最后一次生效,前面都不生效。即函数在短时间内只执行一次。2、手写节流function throttle(fn, delay) { // 记录上一次函数触发的时间 let lastTime = Date.now(); return function() { let co原创 2020-08-19 10:19:57 · 1450 阅读 · 0 评论 -
如何改变 this 指向?bind 和 apply 和 call 的区别?手写apply bind call函数
参考:改变this指针的apply,call,bind的区别2019前端面试系列——JS高频手写代码题总结:apply、call、bind三者都是用来改变函数的this对象的指向的;apply、call、bind三者第一个参数都是this要指向的对象,也就是想指定的上下文apply、call、bind三者都可以利用后续参数传参bind是返回对应函数,便于稍后调用;apply、call则是立即调用apply和call完全一样,只是接收参数的方式不太一样,call是把参数按顺序传进去,而appl原创 2020-08-19 09:47:20 · 217 阅读 · 0 评论 -
手写promise
class Promise { constructor(fn) { const that = this; this.state = 'pending'; // value 变量用于保存 resolve 或者 reject 中传入的值 this.value = undefined; this.reason = undefined; // 用于保存 then 中的回调,因为当执行完 Promise 时状态可原创 2020-07-20 13:55:27 · 99 阅读 · 0 评论 -
手写mvvm双向绑定
const obj = {};const input = document.getElementById('input');const span = document.getElementById('span');// 数据劫持Object.defineProperty(obj, 'text', { configurable: true, enumerable: true, get() { console.log("获取数据"); }, set原创 2020-07-20 11:47:24 · 65 阅读 · 0 评论 -
实现new方法
var Person = function(name, age) { this.name = name, this.age = age}function _new(constructor, params) { // 将arguments对象转换为数组 var args = [].slice.call(arguments); // 取出构造函数 var constructor = args.shift(); // 创建一个空对象,继承构造函数的pr原创 2020-07-17 22:02:13 · 106 阅读 · 0 评论