为了账号安全,请及时绑定邮箱和手机立即绑定
貌似老师的中文翻译源码有个地方错了,在 112 行左右的 type 函数应该是这样的 :
function type(obj) {
return obj == null ? String(obj) :
class2type[toString.call(obj)] || "object"
}
少了 class2type

最新回答 / 82609791
这个可以到对应的官网查看文档,比较全面
老师讲的真的是不错的,比较浅显易懂,那些不懂的是自己的基础功不扎实。__proto__ 指向创建这个对象的函数的显式原型。“不觉得源码是重写proto我觉得是重写prototype”,能问这个问题的肯定是没有区分 __proto__ 和 prototype 的作用,老师讲的没有错
arr.__proto__.newFunc... 完全等于 Array.prototype.newFunc...
求老师更正一下。
老师太帅了!!!
老师讲的不错。但是有个地方我不明白,window.$ === undefined && (window.$ =Zepto)
老师真心牛逼了,把自己的源码注释都分享出来了,感谢。

已采纳回答 / 星跞
因为window下直接挂载的undefined可能会被用户或其他库的代码覆盖:<...code...>所以zepto作者在局部变量里定义了一个未初始化的undefined,因为未初始化,所以undefined变量值肯定为undefined,综上就是为了避免全局undefined变量被覆盖导致判断不准的问题。
对象是引用类型,arr.__proto__ 指向Array.prototype ,__proto__和prototype两对象指向的是内存的同一存储空间。arr.__proto__.fn增加一个方法,Array.prototype和其他通过Array创建的对象都指向该空间,因此都有这个fn方法。但若arr.__proto__ = {fn: ..}用对象字面量赋值,会丢失对之前原型的引用,相当于arr.__proto__已重新指向内存分配的另一个空间,和Array.prototype指向的已经不是同一个空间了,因此Array.prototype以及通过Array创建的其他对象就访问不到fn方法
恍然大悟
分析的真不错!大赞!
老师的课干货满满
非常棒非常棒
测试一下啊,看能不能
aqqqqqq
赞一个!感谢
课程须知
1、有javascript语法基础 2、了解zepto的基本使用
老师告诉你能学到什么?
1、javascript原型链的基础知识 2、zepto中原型链的应用 3、zepto的核心设计思想

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消