ajax
1 | ;(function anonymous(window) { |
我的前端之路
1 | ;(function anonymous(window) { |
公司一直是使用git作为代码管理,现在整理一些常用的git命令,供大家查看,不再依赖图形化工具
1、克隆仓库
克隆仓库会下载仓库完整的文件、分支和历史记录。
1 | git clone [<options>] [--] <repo> [<dir>] |
1 | # 克隆完整的仓库到 ./git-learning 目录下 |
2、将文件变更记录写入到本地的索引库
1 | git add [<option>] [--] [pathsec]... |
1 | # 添加当前目录下所有文件 |
3、提交变更到工作区
1 | git commit [<options>] [--] <pathsec>... |
1 | # 最普通的提交 |
4、推送代码到远程仓库
1 | git push [<options>] [<repository>] [<refspec>...]] |
1 | # 提交本地仓库当前分支到远程仓库的 master 分支 |
Git 是一个分布式的版本控制工具,因此远程和本地可以视为两个独立的 Git 仓库。上图是一张经典的 Git 中的数据流与存储级别的介绍,其中储存级别主要包含几部分:
总体的流程就是::工作区 -> 暂存区 -> 本地仓库 -> 远程仓库
深入探究下 Function.proto === Function.prototype 引起的鸡生蛋蛋生鸡问题,并在这个过程中深入了解 Object.prototype、Function.prototype、function Object 、function Function 之间的关系。
Object.prototype表示 Object 的原型对象,其 Object.prototype.__proto__ 是 null
,因此 Object.prototype 并不是通过 Object 函数创建的。其实 Object.prototype 是浏览器底层根据 ECMAScript 规范创造的一个对象。
Object.prototype 就是原型链的顶端(不考虑 null 的情况下),所有对象继承了它的 toString 等方法和属性。
Function.prototype 对象是一个函数(对象),其 [[Prototype]]
内部属性值指向内建对象 Object.prototype。Function.prototype 对象自身没有 valueOf 属性,其从 Object.prototype 对象继承了valueOf 属性。
Function.prototype 的 [[Class]] 属性是 Function,所以这是一个函数,但又不大一样。为什么这么说呢?因为我们知道只有函数才有 prototype 属性,但并不是所有函数都有这个属性,因为 Function.prototype 这个函数就没有。1
2
3
4
5
6
7
8
9
10Function.prototype
// ƒ () { [native code] }
Function.prototype.prototype
// undefined
let fun = Function.prototype.bind()
// ƒ () { [native code] }
fun.prototype
// undefined
我的理解是 Function.prototype 是引擎创建出来的函数,引擎认为不需要给这个函数对象添加 prototype 属性,不然 Function.prototype.prototype… 将无休无止并且没有存在的意义。
Object 作为构造函数时,其 [[Prototype]]
内部属性值指向 Function.prototype,即1
2Object.__proto__ === Function.prototype
// true
react-redux梳理
- PROVIDER:当前项目的“根”组件
- 接收通过属性传递进来的STORE,把STOR>挂载到上下文中,这样当前项目中任何一个组>中,想要使用REDUX中的STORE,直接通过上下文>取即可
- 在组件的RENDER中,把传递给PROVIDE>的子元素渲染
1 | import React from 'react'; |
redux梳理
- createStore:创建REDUX容器的
- @PARAMS
- reducer:函数
- @RETURN
- store : {
- getState,
- dispatch,
- subscribe
- }
1 |
|