javascript中需要自行定义的函数
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.
最新文章
- jquery插件之tab标签页或滑动门
- Spring4.1.0 整合quartz1.8.2 时 : class not found : org.springframework.scheduling.quartz.JobDetailBean
- wordpress通过代码禁用IE8, IE9,IE10等IE浏览器兼容视图模式(Compatibility View)
- Linux系统文本命令快速登录与退出
- TensorFlow框架(4)之CNN卷积神经网络
- QEMU KVM Libvirt手册(11): Managing Storage
- php_network_getaddresses: getaddrinfo failed 原因
- rsyslog的安装、使用、详解
- 完整的一次 HTTP 请求响应过程(一)
- Badge
- shell下变量比较最佳实践
- 使用缓存方式优化递归函数与lru_cache
- macos 下安装virtualenv,virtualenvwrapper,然后在pycharm中正常配置方法日志
- 关于vue2.0获取后端数据
- python nltk 安装及配置说明
- TensorFlow实战——个性化推荐
- Ng第七课:正则化与过拟合问题 Regularization/The Problem of Overfitting
- 基于Redis的CAS集群
- WPF的xaml中特殊字符表示
- 关于SDN