亲爱的JavaScript大师。
我理解了几十篇关于范围,对象,这个关键词等的文章 但这些只显示了基本的例子 我看到的大多数代码都是冗长而混乱的JavaScripts。
我想实现行为,这个'这个'在每个对象中引用对象本身 此测试代码段具有所需的行为。
问题:
有没有更好的方法来实现这一点?
是反模式吗?
replaceMultipleSeparators( 'testFile.csv', '\t', '|' )

答案 0 :(得分:1)
不确定它是否有资格作为“反模式”本身,但肯定会有很多不必要的事情发生。这是一个简化的例子,维护你声明的静态函数:
var mainObject = {};
mainObject.childObject = {};
function modifyChild() {
this.property = 'childObject';
this.childMethod = function() {
console.log('child obj method');
};
}
modifyChild.call(mainObject.childObject);
function modifyMain() {
this.property = 'mainObject';
console.log('main obj method');
this.childObject.childMethod();
}
modifyMain.call(mainObject);
console.log(mainObject);
console.log(mainObject.childObject);
一般情况下,如果你想要一个静态函数,你可以直接调用,而无需链接.call()
或.apply()
,并传入this
上下文,你可以.call.bind()
它对自己:
var someFunction = (function () {
function someFunction () {
console.log(this);
}
return someFunction.call.bind(someFunction);
})()
someFunction({ foo: 'bar' });