gpt4 book ai didi

javascript - 无法访问变量

转载 作者:行者123 更新时间:2023-11-30 09:45:41 25 4
gpt4 key购买 nike

我正在使用的变量在某个点后变为未定义。有人可以帮助我了解正在发生的事情。

下面的代码是一个 Protractor 代码。

this.searchBy = element(by.model('searchCompanyComponent.searchByValue'));

this.clickTheProvidedValueInSearchByDropdown = function (selectedItem) {
var x = this.searchBy;
this.searchBy.all(by.tagName('option')).filter(function (elem, index) {
return elem.getText().then(function (text) {
return text.toUpperCase().replace(/ |-/g, '') === selectedItem.toUpperCase().replace(/ |-/g, '');
});
}).getText().then(function (text) {
console.info(x); // 1
console.log(this.searchBy); // 2
});


};
console.log(this.searchBy); //3

1 和 3 处的控制台日志显示定位器对象,但 2 处的控制台日志显示为未定义。

这种意外行为背后的原因是什么?

最佳答案

在 JavaScript 中,this 可以表示很多不同的意思,具体取决于您引用它的上下文。

当你说 console.log(this.searchBy);//2 您处于传递给 getText 的匿名函数的上下文中,该函数没有 searchBy 属性。您需要将此函数绑定(bind)到您的页面对象的上下文,或者使用存储在x

中的 searchBy 引用

查看this mdn article可能会有帮助

关于javascript - 无法访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38998862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com