发表于: 2019-12-15 23:10:11
1 996
今天完成的事:
①日历签到
banner管理
和文章管理一样需要判断查看还是编辑。
通过存一个localStorage
在点击查看后存入一个
然后在点击过去后,判断有无,有则是查看,无则是编辑。
然后当再次返回列表页时,删除存储的look。
1.js的原型和原型链再复习
关于这个概念吧,前前后后也看了两三次了,但对一些概念总是有些说不清楚。。
什么是js原型?
在JavaScript中原型是一个prototype对象,用于表示类型之间的关系
也就是说:当生产一个function对象的时候,就有一个原型prototype。
什么是原型链?
原型链是实现继承的主要方法。
对象之间的继承关系,在JavaScript中是通过prototype对象指向父类对象,直到指向Object对象为止,这样就形成了一个原型指向的链条,称之为原型链
原型链的关系?
function Foo() {}// Fn为构造函数
var f1 = new Foo();//f1是Fn构造函数创建出来的对象
构造函数的prototype属性值就是对象原型。(Foo.prototype就是对象的原型)
构造函数的prototype属性值的类型就是对象 typeof Foo.prototype===object.
对象原型中的constructor属性指向构造函数 (Foo.prototype.constructor===Fn)
对象的__proto__属性值就是对象的原型。(f1.__proto__就是对象原型)
Foo.prototype===f1.__proto__ 其实它们两个就是同一个对象---对象的原型。
所有Foo.prototype.__proto__===Object.prototype
typeof Object.prototype ===object。
Object.prototype.__proto__===null。
最清晰表示原型链的图
2.apply()和call()的区别。
它们各自的定义:
apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。
call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2);即A对象调用B对象的方法。
它们的共同之处:
都“可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象”。
它们的不同之处:
apply:最多只能有两个参数——新this对象和一个数组argArray。如果给该方法传递多个参数,则把参数都写进这个数组里面,当然,即使只有一个参数,也要写进数组里。如果argArray不是一个有效的数组或arguments对象,那么将导致一个TypeError。如果没有提供argArray和thisObj任何一个参数,那么Global对象将被用作thisObj,并且无法被传递任何参数。
call:它可以接受多个参数,第一个参数与apply一样,后面则是一串参数列表。这个方法主要用在js对象各方法相互调用的时候,使当前this实例指针保持一致,或者在特殊情况下需要改变this指针。如果没有提供thisObj参数,那么 Global 对象被用作thisObj。
实际上,apply和call的功能是一样的,只是传入的参数列表形式不同。
明天计划的事:
真实评审
遇到的问题
周末效率低
收获
对于原型和原型链总算又进一步了解了。
评论