繁体   English   中英

无法访问变量

[英]Not able to access a variable

我使用的变量在某一点之后变得不确定 有人可以帮助我了解正在发生的事情。

以下代码是量角器代码。

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处的控制台日志显示为undefined。

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

在JavaScript中, this可能意味着很多不同的事情,具体取决于引用它的上下文。

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

复习此Mdn文章可能会有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM