我有以下功能
self._eventLogger({
name: 'SeekerCredentialingIntroPageView'
});
this.lastBGCRequestStatus(self._eventLogger.name);

我无法在name
功能之外访问self._eventLogger()
。 lastBGCRequestStatus()
函数接受一个参数,我想将我的名称变量作为参数传递。
我尝试过以下解决方案:
this.lastBGCRequestStatus(self._eventLogger.name);
this.lastBGCRequestStatus(self._eventLogger['name']);
没有运气。
有人可以建议我以其他方式这样做吗?
答案 0 :(得分:3)
你可以试试这个:
var obj = { name: 'SeekerCredentialingIntroPageView' };
self._eventLogger(obj);
this.lastBGCRequestStatus(obj.name);
在_eventLogger
中传递您此时创建的对象。因此,您以后无法访问它的属性,因为唯一知道该对象引用的人将是您传递其副本的函数。
答案 1 :(得分:3)
我无法访问' name' self._eventLogger()函数之外的
嗯......不,因为您正在将对象传递给它而没有保留对该对象的引用,name
是该对象的属性。将参数传递给函数并不会修改函数(除非函数代码执行此操作)。
如果要在将对象传递给函数后使用该对象,请保留对它的引用:
var event = {
name: 'SeekerCredentialingIntroPageView'
};
self._eventLogger(event);
this.lastBGCRequestStatus(event.name);
附注:从ES2015开始(又名" ES6"),函数具有内置的name
属性。支持仍然有点不稳定,但使用原始代码,您可以很容易地将"_eventLogger"
传递到lastBGCRequestStatus
。 : - )
答案 2 :(得分:3)
您可以这样做:
var myName = 'SeekerCredentialingIntroPageView';
self._eventLogger({name: myName});
this.lastBGCRequestStatus(myName);