这些函数与Javascript中的对象有何不同?

时间:2017-09-12 12:48:44

标签: javascript

我习惯使用function id(_id) { return document.getElementById(_id); }来减少一遍又一遍打字的工作。

旁注:

  对于小型任务和项目来说,jquery变得太沉重了

当我更多地学习Javascript时,我发现我们可以像对象一样传递函数,所以我们可以做到

var id = document.getElementById;

似乎两者完全相同。但是,我不是Javascript的专家,所以内部有什么不同吗?哪个是首选的使用方式?

1 个答案:

答案 0 :(得分:1)

是的,上下文是:

const log = console.log;

log("test");

上层不会工作,因为上下文发生了变化,必须在控制台对象上调用日志,而不是在窗口上调用(也就是没有上下文)。但是,有一些简单的解决方法:

const log = console.log.bind(console);

或者您使用的功能,例如箭头:

const log = (...args) => console.log(...args);