-
1- 减少变量定义 -- 因为有的变量定义时会执行new函数
2- 在做react时 可以根据需求实现部分的jquery的功能 而不必全部引入 --- 这个也就提供了一些学习源码实现的思路:你在开发中有些功能跟jquery/zepto提供的功能很像,那么你就可以去zeptoy源码中搜对应的函数,看这个函数的实现思路 -- 这个可都是非常优秀的开发人员的手笔啊~
查看全部 -
1- 原型 函数 都是对象的一种
2- 函数是一种可执行对象
3- 原型是内置的一个属性 一般构建方法是内建一个对象fn 然后把所有的属性加到fn中 再把这个fn赋值到prototype上
查看全部 -
1- 用函数内建的zepto对象管理所有的内部函数
2- zepto.init的作用就是把传入的多种情况的selectort统一成zepto自定义的内部处理对象;
查看全部 -
zepto-core基本的设计结构
查看全部 -
特别是当你写但三方库的时候,一定不要写公共变量,因为这样有可能你的公共变量会污染到使用者的变量。所有的变量都用函数圈起来,划定它的作用域
查看全部 -
这里就是第一步初步的设计
1- 通过工厂模式--该自执行匿名函数返回一个加工后的对象给zepto变量
2- 然后再把这个zepto变量挂载到全局变量window上,用Zepto为属性名;如果¥未被占用,也挂在$上
查看全部 -
插件机制:
就是往原型里加属性:
arr.__proto__.customFn // 只是应用于arr一个变量 -- 验证下~
arr.__proto__.constructor.prototype.customFn // 是应用于原型的
查看全部 -
设计思路:
1- 给自己定义的对象添加自定义的方法:
-- 修改对象的__proto__指向,指向自己的所定义的对象(原型,里面有自定义的方法)
-- 同时该对象的部分功能可以继承原来原型的方法,例如{ push:Array.prototype.push ...}
查看全部 -
总结:是个好习惯:
1- 每一个函数,都有一个prototype属性(因为原型的本质是函数??Array 都是函数)
2- 所有通过函数new出来的东西(具体的对象, var arr = new Array(); 这个arr就是),每一个都有一个__proto__指向该函数的prototype
-- prototype(显式原型)
--__proto__(隐式原型)
3- 对象的方法/属性 -- 会从自身出发,沿着原型链(__proto__)去寻找,__proto__类似于链表的指针
4- __proto__是可修改的
查看全部 -
对象的__proto__可以被重新赋值
之后可能就会与之前的原型链断开 所继承的方法也就不复存在了
查看全部 -
这个是.运算符的实现思路(不是让我们手动去跟着__proto__沿着原型链去找):
1- 去__proto__中找 实际思路就是沿着原型链找某个原型提供了这个方法
2- __proto__有点儿像链表中的指针,指向父级原型的prototype
查看全部 -
通过函数(例如Fn)new出来的(例如a), a都有一个__proto__指向Fn的prototype
查看全部 -
对象要能够使用某种方法(以.属性的方式使用):
1- 得把这个方法加到这个对象的原型链的某一个原型上
2- 原型的获取可以通过对象的prototype或者__proto__属性来获取
3- 原型获取到后还是一个对象,可以增加一些方法/属性
笔记:
1- fn.prototype === {
constructor: {...} ,// 指向fn本身
__proto__: {...} //
}
查看全部 -
我们需要招聘有产品观念的程序员:
1- 要有文档意识:当你写的一些产品/组件/第三方库的时候,一定要不厌其烦地提供准确详细的说明,并维护它。它的质量和寿命,决定着你的产品的寿命;
2- 要有反馈与迭代的意识,根据反馈/调查结果来调整产品;
查看全部 -
所有通过函数new出来的东西,这个东西都有一个__proto__指向这个函数的protyotype:
prototype:(显示)原型
__proto__:隐式原型
当你想要使用一个对象(或者一个数组)的某个功能时,如果该对象本身具有这个功能,则直接使用,如果该对象本身没有这个功能,则去__proto__中找
查看全部 -
重写图,原理
查看全部 -
通过 重写__proto__ 属性,增加属性,并通过原型引用数组方法
查看全部 -
JS每一个函数都有prototype属性
查看全部 -
1.每一个函数,都有一个prototype属性,无论是自定义的,还是系统内置的。都有一个constructor指向它本身。 2.所有通过函数new出来的东西,这个东西都有一个__proto__指向这个函数的prototype,prototype:显式原型,__proto__:(隐式)原型。 3.当你想要使用一个对象(或者一个数组)的某个功能时:如果该对象本身具有这个功能,则直接使用;如果该对象本身没有这个功能,则去__proto__中找。
查看全部 -
javascript 三座大山:
1. 原型和原型链
2. 上下文环境和作用域
3. 单线程和异步查看全部 -
原型属性增加,__proto__是原型传递,继承,实例的本质。js中所有对象都继承自Object根对象,表面上是prototype,但本质离不开__proto__
查看全部
举报