前端面试总结
2017-03-25 00:00
246 查看
1.js中this是如何工作的?
函数中的this的值取决于函数调用的模式:方法调用模式
当函数被保存为对象的一个属性时,该函数为该对象的方法。函数中this的值为该对象。
var foo = { name: 'fooname', getName: function (){ return this.name } } foo.getName(); // this => foo
函数调用模式
当函数并不是对象的属性。函数中this的值为全局对象
note:某个方法中的内部函数中的this的值也是全局对象,而非外部函数的this
function foo(){ this.name = 'fooname'; } foo(); // this => window
构造器调用模式
即使用new调用的函数,则其中this将会被绑定到那个新构造的对象。
function Foo(){ this.name = 'fooname'; } var foo = new Foo(); // this => foo
使用apply或call调用模式
该模式调用时,函数中this被绑定到apply或call方法调用时接受的第一个参数。
function getName(name){ this.name = name; } var foo = {}; getName.call(foo, name); // this =>foo
改变this值的方法主要有三个:
call、apply、bind
区别在于call和apply都是直接调用,而bind确实生成了一个改变了this指针的新函数,需要再次调用,call和bind的第二个参数都是一个任意值,而apply的必须是一个数组
2.new操作符具体干了什么?
创建了一个空对象,并且this变量引用该对象,并且继承了该函数的原型属性和方法被加入到this引用的对象中
新创建的对象被this所引用,并且最后隐式返回this
相关文章推荐
- 前端面试总结
- 笔者总结的一些前端面试笔试试题(仅供参考,如果错误,望指教)--1
- 面试总结三---2015百度校园招聘长沙站前端工程师笔试面试经历
- 网易前端面试总结
- 最全面的前端面试问题及答案总结
- 前端面试总结
- 最全前端面试问题及答案总结
- 前端面试总结(20150322电面)
- 谈谈阿里实习生招聘面试经历及经验总结(回忆版)--前端开发
- 【转】最全前端面试问题及答案总结
- 笔者总结的一些前端面试笔试试题(仅供参考,如果错误,望指教)--2
- 前端面试总结
- 有道前端面试总结
- 前端面试总结
- 关于前端学习和笔试面试的总结
- 海豚浏览器前端面试总结
- 关于前端学习和笔试面试的总结
- [2015找工作]前端面试总结1
- 前端实习生面试总结
- Web前端面试总结