【发布时间】:2018-02-14 06:26:39
【问题描述】:
我很好奇何时需要/最佳实践使用关键字this。我知道在确定函数this 值时会使用this,但它总是需要吗?
我问的原因是因为我有一个内部函数,它在我的模块中被调用,它所做的只是对你传递的一些数据进行排序。我的问题是我应该使用this 关键字调用这个函数还是单独调用这个函数。
例如:
function formatSomeData(data){
//code........
}
this.formatSomeData(data);
OR
formatSomeData(data);
我知道函数被调用的上下文及其目的在回答问题时很重要,但在这种情况下,就像我提到的那样,我真的不需要在任何时候访问 this 对象.调用函数时使用它仍然是一种好习惯吗?
我要问的不是“this”是如何工作的,而是什么时候使用它合适,什么时候不合适。
【问题讨论】:
-
如果它是某种
method,这意味着该函数在某种程度上直接与一个对象相关,那么使用this是一个很好的设计决策。否则不 -
顺便说一句
this.formatSomeData(data);在你的情况下不起作用,所以答案很明显 -
@JonasW。它可能。在非严格模式下,
this将指向window,并且任何不在函数中的声明都将成为全局范围的一部分。 -
@rajesh "in non-strict mode" ...在这里谈论不良做法...
标签: javascript function scope this