摘要:
每个函数都包含两个非继承而来的方法:call()方法和apply()方法。 call和apply可以用来重新定义函数的执行环境,也就是this的指向;call和apply都是为了改变某个函数运行时的context,即上下文而存在的,换句话说,就是为了改变函数体内部this的指向。 语法 call() 阅读全文
摘要:
ES5如何实现继承 一.原型链继承 原型链继承的原理很简单,直接让子类的原型对象指向父类实例,当子类实例找不到对应的属性和方法时,就会往它的原型对象,也就是父类实例上找,从而实现对父类的属性和方法的继承 function Prant() { this.name = 'hello' } Prant.p 阅读全文
摘要:
forEach语法 与for循环一样,forEach也属于完整遍历数组的方法,并会对数组每项元素执行提供的回调函数,一个完整的forEach应该是这样,我们一一解释回调函数的参数,与后方的this有何作用。 arr.forEach(function(self,index,arr){},this); 阅读全文
摘要:
JS中的原型和原型链 讲原型的时候,我们应该先要记住以下几个要点,这几个要点是理解原型的关键: 1、所有的引用类型(数组、函数、对象)可以自由扩展属性(除null以外)。 2、所有的引用类型都有一个’_ _ proto_ _'属性(也叫隐式原型,它是一个普通的对象)。 3、所有的函数都有一个’pro 阅读全文