gpt4 book ai didi

javascript - 为什么我在使用私有(private) JS ES5 类调用时会收到 Uncaught TypeError?

转载 作者:行者123 更新时间:2023-11-28 16:59:43 25 4
gpt4 key购买 nike

我正在尝试用 JavaScript (ES5) 创建一个类。但是,当我从另一种方法调用一种方法时,我在控制台中收到以下错误消息:

Uncaught TypeError: root.abLog is not a function

相关违规文章(已删除以仅显示相关部分)如下:

var abClass = function(options) {

var root = this;

this.checkAttach = function(text){
root.abLog('Checking attached');
/* snip */
};

var abLog = function(data) {
console.log('abClass PATH: "'+vars.path+'"');
console.log('abClass: '+data);
};

};

root.abLog('Checking Attached');this.abLog('Checking Attach'); 都会导致类似的错误。

对于我所理解的私有(private)方法,我做错了什么?

最佳答案

在没有rootthis的情况下调用它,例如 -

var abClass = function(options){

var root = this;

this.checkAttach = function(text){
abLog('Checking attached');
/* snip */
};

var abLog = function(data) {
console.log('abClass PATH: "'+vars.path+'"');
console.log('abClass: '+data);
};

};

abLog 是您的 abClass 的私有(private)函数以及 this 的范围(附加到您的 root 中) case) 获取类的公共(public)成员的副本,即通过 this.XXX 直接附加的成员 - 在您的情况下,仅将 checkAttach 附加到 this(因此使其成为公共(public)成员)

检查this JS bin尝试和调试

关于javascript - 为什么我在使用私有(private) JS ES5 类调用时会收到 Uncaught TypeError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57906833/

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