面试总结篇之Javascript(三)
来源:互联网 发布:mysql 有符号整型 编辑:程序博客网 时间:2024/06/04 10:56
继续Javascript面试总结~
1. bind函数的作用:
bind函数的用法为:function.bind({arguments});bind函数的两个作用是:1.绑定this,2.科里化。
a. 绑定this:
bind方法:改变函数运行时的this指向,如bind(getX)把this绑定到参数getX。
function foo(){
this.b=100;
return this.a;
}
var func=foo.bind({a:1});
func(); //1 通过bind让this指向a;
new func();// {b:100}
注:使用new方法时会有特殊情况,如果外部使用new来构造函数时,函数没有return或者return类型为基本类型时返回this,且this被初始化为一个原型为该对象的空对象,如果函数return为对象,则将对象返回给new。
b. currying(科里化)
把参数拆分开来,例如add.bind(undefined,100)不改变this的指向,函数的第一个参数改为100,若函数有三个参数,则只需传入后两个参数即可,有叠加效果。
2. 函数属性arguments
arguments得到函数实参个数,类数组对象,原型并不是array.prototype,arguments与实参有绑定关系,如果未传入实参,则失去绑定关系。严格模式下arguments得到的是实参的副本,实际上改变不了实参的值,严格模式下arguments.callee不能使用。
3. Javascript中的this
a.全局的this(指象window)
this.document===document;//true
this===window;//true
this.a=37;
b.一般函数的this:
function f1(){
return this;
}
f1()===window;
c.作为对象方法的函数的this;
var o={
prop:37;
f:function(){
return this.prop;
}
}
console.log(o.f()); //37
d.对象原型链上的this:
var o={f:function(){return this.a+this.b;}};
var p=Object.create(o);
p.a=1;
p.b=4;
console.log(p.f());//5
e.get/set方法与this:get/set方法中的this一般指向get/set方法所在的对象
f.构造器中的this:
function MyClass(){
this.a=37;
}
var o=new MyClass();
console.log(o.a);//37, this 指向MyClass.prototype类型的一个空对象。
g.call/apply方法与this
add.call(o,5,7)// 扁平化传参
add.apply(o,[10,20])// 将参数作为一个数组传进去
h.bind方法与this
var g=f.bind({a:"test"});
console.log(g());//test
1 0
- 面试总结篇之Javascript(三)
- 面试总结之Javascript篇(一)
- 面试总结之Javascript篇(二)
- JavaScript总结之三
- JavaScript+总结(三)
- 面试之javaSe(三)
- javascript高级程序设计总结之三
- Javascript知识点总结(三)
- 面试总结JavaScript
- JavaScript面试总结
- 面试官最常问的问题总结(三)
- Android面试笔记总结(三)
- C-C++面试知识点总结(三)
- 新华三面试总结(一)
- 面试心得与总结(三)
- 新华三面试总结(二)
- 面试总结(三)
- 面试总结三
- VMware安装CentOS以及CentOS的一些配置
- jedis针对三种redis工作模式的连接方式
- Edittext不可编辑可点击 & 解决Edittext第二次点击才有效
- cocos2dx 自动遍历class下所有cpp文件 区分win32和mac
- 几个著名java开源缓存系统的介绍
- 面试总结篇之Javascript(三)
- Wireshark捕获经过指定ip的数据包
- JAVA ABA问题
- js图片自动轮播代码分享(js图片轮播)
- 完全理解Python迭代对象、迭代器、生成器
- 团体程序设计天梯赛-练习集 L3-001. 凑零钱
- UIWebview打开.txt文件中文乱码解决
- C语言setgroups()函数:设置组代码函数
- GitHub上那些值得一试的JAVA开源库