this 关键字[Javasript]
时间:2019-09-11 发布者: 访问量:3139
-
面试会问啊! 总有一些面试官喜欢问你一段不可能这么写的代码。 看一道经典且古老的面试题(学完本文后,末尾会有一道更复杂的面试题等着你哦!)
代码如下:
var a = 5; var obj = { a : 10, foo: function(){ console.log(this.a) } } var bar = obj.foo obj.foo() bar() 复制代码
-
我在读 Events 的 lib/events 源码的时候发现多次用到call关键字,看来有必要搞懂 this 与 call 相关的所有内容。
其中几句代码是这样写的
// 场景1: function EventEmitter() { EventEmitter.init.call(this); } // 场景2: return this.listener.call(this.target); // 场景3: return listenerCount.call(emitter, type); 复制代码
-
箭头函数使用不当报错,在封装 Node.js 的一个 ORM 映射框架 Sequelize 时,封装表关联关系,由于使用箭头函数造成了读到的上下文发生变化,不是想要的 model 信息,而是指向了全局 。
-
call 关键字在写代码过程中还是比较常用的,有时候我们常常会使用 call 关键字来指定某个函数运行时的上下文,有时候还使用 call 关键字实现继承。
代码例子如下:
var person = { "name": "koala" }; function changeJob(company, work) { this.company = company; this.work = work;
};
changeJob.call(person, '百度', '程序员'); console.log(person.work); // '程序员'
用户评论
猜你喜欢
生活励志
生活文摘
生活福利
生活编程