1.toString()与String()
使用方式:x.toString();-----String(x);
String是万能的方法,而x.toString()则有局限性,无法将undefined和null转化为字符串的形式.因为这两者不能使用".方法"的形式使用.
而我们此时就可以通过x.toString()的方式来模拟String()的方法.
实现思路:作条件限制,如果是null-->"null"如果是undefined-->"undefined"
否则,都返回x.toString().
2.为Array重写indexOf方法
由于indexOf是String的方法,而数组时无法直接调用该方法的,不过该方法又有很好的实用性,所以我们需要让数组也支持该方法.
首先,indexOf方法需要两个参数,val和fromi,一个是用于检测的值,一个是开始的下标.然后,判断用户给的参数,fromi可以省略,默认为0.indexOf方法的核心就是历遍数组,做等值比较.
3.forEach()与map()
forEach是基于原数组,对数组执行相应的操作.
map是创建一个新数组,接受对原数组的做作后的结果并返回.
重新定义的原理:历遍数组,只有有元素,都执行cellback.
4.bind()
是什么:基于现有函数,创建一个新函数,提前永久绑定函数中的this为指定对象-->函数中的this默认指的是当前调用这个函数的对象.如果过没有对象调用函数,this指的是window.
匿名函数的自调:匿名函数内的this指的是window;回调函数(在函数里调用函数):默认的this也是指window;
例子:两次绑定了this.
$("#preview h1>a").each(function(elem){
elem.on("click",this.move.bind(this));
}.bind(this));
在本例中,this的绑定顺序是由外向内绑定的,这是由于程序是由外向内执行(左->右)的.外层将回调函数的this由window绑定成了对象本身(zoom)
(即能找到this.move).而里面的bind将外层并进回调函数的this(zoom)又绑给了move函数中的this(默认是指调用该函数的对象elem),所以move函数里的this也就变成了zoom.
相关文章
- javascript中需要自行定义的函数
- 浅析 JavaScript 中的 函数 uncurrying 反柯里化
- 关于keil中无法跳转到函数、变量定义处的问题
- cocos2dx lua 绑定之一:自动绑定自定义类中的函数
- 关于JavaScript中replace()函数替换没有效果的一种解决方案 - Joel233
- python中函数的定义,调用,全局变量,局部变量,函数的嵌套使用-初级篇
- 小程序篇五:在wxml中调用自定义的js函数
- javascript单例模式字面量定义的接口和匿名函数定义的接口;他们之间访问私有变量和私有函数之间的区别
- 【React】在 JSX 中通过大括号使用 JavaScript-在 JSX 的大括号内调用 JavaScript 函数
- 在oracle中写一个自定义的函数,实现split分割字符串的效果