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.
相关文章
- 12-02Hive中如何添加自定义UDF函数以及oozie中使用hive的自定义函数
- 12-02python函数定义中引用外部变量的一个问题
- 12-02python中函数的定义及调用
- 12-02Python中函数的定义必须在调用的前面
- 12-02Python中,关于调用带参函数,一些需要注意的问题(监听时)
- 12-02C realpath函数不适用于源文件中定义的字符串
- 12-02华南农业大学OJ答案实验9:1083 编写函数计算阶乘;1124 函数中的变量;1059 [填空题]函数定义;1084 [填空题]十进制数转二进制数;1151 求函数值
- 12-02C++中宏的定义与用法(现已被内联函数所代替)
- 12-02【笔记】Ray Tune,超参最优化(2) :将数据加载和训练过程封装到函数中;使用一些可配置的网络参数;增加检查点(可选);定义用于模型调参的搜索空间
- 12-02Python学习笔记之7.5 - 定义有默认参数的函数》》》直接在函数定义中给参数指定一个默认值,默认参数的值应该是不可变的对象