摘要:
总结一下平时遇到的浏览器兼容性问题,本篇关于JS。 1.事件绑定 兼容写法: 小结:addEventListener()兼容firefox、chrome、safari、opera、IE9+ attachEvent()兼容IE7,8 2.event事件对象 兼容写法 小结:e兼容火狐浏览器,windo 阅读全文
摘要:
面试中经常会考到数组的去重。作为一名合格的前端开发者,不知道几种去重方法是在不应该。废话不多说直接开撸…… 一、indexOf()方法 实现思路:使用indexOf()方法来判断新数组中是否有这个值,若没有则将这个值push到数组中 代码很简单,说明一点indexOf()是ES5中的方法,不兼容IE 阅读全文
摘要:
1.原型是函数对象的属性,它的初始值是一个空对象,这个prototype原型对象可以添加方法和属性。 2.构造器对象查找属性和方法时先查找构造器后查找原型。 3.若构造器中的属性和原型中的属性相同,构造器的优先级会高于原型。 4.枚举属性(for-in) (1).数组枚举 var a=[1,2,3] 阅读全文
摘要:
extend函数的第一个参数是子构造器,第二个参数是父构造器; 为什么子构造器的原型对象不直接指向父构造器的原型对象,是因为若child.prototype=parent.prototype,则会出现父子的原型对象绑定在一起,即父子的原型对象的引用相等,相当于指向同一个地址,改变子对象的原型,父对象 阅读全文
摘要:
js的对象之间的继承抛弃了原型与构造器的概念,而转为字面量对象之间进行属性拷贝的方式进行继承。 首先我们来写一个封装好的继承函数: 函数有一个形参parent,函数内部新建一个空的子对象,这个子对象就像一个白的画板,逐渐的将父对象上的内容临摹上去。for循环当中是将父对象中的属性和方法逐个复制给子对 阅读全文
摘要:
1.每个函数都有一个arguments属性,表示函数的实参集合,这里的实参是重点,就是执行函数时实际传入的参数的集合。 2.arguments不是数组而是一个对象,但它和数组很相似,所以通常称为类数组对象,以后看到类数组其实就表示arguments。 3.arguments有length属性,可以用 阅读全文
摘要:
所谓深拷贝,就是子对象不紧继承父对象的非引用属性,还能继承父对象的引用属性(Object,Array),当子对象对继承的引用类型属性做修改时,父对象的引用类型不会被修改。 我们先写个浅拷贝的封装函数: 接下来写个深拷贝的封装函数: 分析两个函数有何不同,extendCopy方法是将父对象的属性和方法 阅读全文