js
zhouyicchi
书写生活,书写人生
展开
-
头铁,深揪javascript中的原型链
引发思考 let obj = { name: 'zhangsan', getName: function () { console.log(this.name) } }; let newObj = { name: 'lisi' }; obj.getName.call(newObj); //lisi 这是一个更改this指向的例子,但是本文的关键在于为什么obj.getName这个函数会有call这个方法?或者说是怎么来的? ...原创 2020-10-26 12:36:45 · 183 阅读 · 0 评论 -
在前端如此崛起的情况下,你还不清楚javascript中this的指向问题吗?
一句话概括 this永远指向调用它的上一级对象 this永远指向调用它的上一级对象 this永远指向调用它的上一级对象 重要的话说三遍… 引发思考 一道经典面试题 var name = "zhangsan"; function info() { var name = "wanger"; console.log(this.name) } info();//zhangsan 懂得同学一眼得知打印出来的是zhangsan,至于为什么呢?看概念,那么调用info函数的对象是谁呢?在游览器中是win原创 2020-10-19 08:58:47 · 261 阅读 · 2 评论 -
手把手教你写call、apply、bind函数,深入理解bind函数的细节
call、apply、bind是什么? 在javascript中,call、apply、bind是标准提供的改变函数执行上下文的方法,白话就是改变this的指向。区别在于: call和apply都是调用后立即返回结果,而bind是调用之后返回一个函数,二次调用返回结果 call第一个参数为目标对象,其余参数依次传入fn.call(obj, arg1, arg2…) apply第一个参数为目标对象,第二个参数为一个数组fn.apply(obj, [arg1, arg2…]) bind的绑定函数还可以作为构造原创 2020-10-13 17:57:50 · 1086 阅读 · 2 评论 -
一切心血来潮的想法皆从一个跑马灯需求开始(跑马灯横向、纵向滚动Vue组件)
需求目的 做业务需求时,产品要求有一个如下的动画(so easy~~) 撸起袖子加油干,第一时间想到的就是HTML自带的marquee标签 你看的没错,标准已经废除了这个标签,既然没有办法使用官方的,那么我去google搜索一下私人版,ctrl+c/ctrl+v(万恶),搜索了半天都是别人定制化开发的(太麻烦了),于是就想自己写一个,那就开始干吧~~ 具体实施 写了一个组件,接收两个参数: tempo:滚动速率 mode:横向滚动和纵向滚动 横向滚动(用了css3的动画) 如图所示,DIV1为外原创 2020-10-10 15:38:29 · 655 阅读 · 2 评论 -
你真的会深度遍历和广度遍历吗?
提出问题 如下有一个对象,要求遍历所有的n,分别用深度优先遍历和广度优先遍历? const tree = { n: 'root', child: [ { n: 'left-1', child: [ { n: 'left-1-1', child: [ {原创 2020-08-24 12:25:58 · 410 阅读 · 0 评论