自引用嵌套对象

时间:2018-02-05 15:29:53

标签: javascript object

亲爱的JavaScript大师。

我理解了几十篇关于范围,对象,这个关键词等的文章 但这些只显示了基本的例子 我看到的大多数代码都是冗长而混乱的JavaScripts。

我想实现行为,这个'这个'在每个对象中引用对象本身 此测试代码段具有所需的行为。

问题:
  有没有更好的方法来实现这一点?
  是反模式吗?



replaceMultipleSeparators( 'testFile.csv', '\t', '|' )




1 个答案:

答案 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' });