Javascript原型(prototype)继承基函数未定义

标签 javascript inheritance prototype

尝试掌握来自 C# 背景的 OO 原型(prototype)普通 javascript 继承。

我有一个执行 HTTP GET 的基“类”。我想继承它,以便子类可以封装此 HTTP GET 的变体。

在下面的代码中我得到一个httpGet is undefined getUser 中的错误功能。我的最终目标是调用一个很好的简单方法,例如 userComms.getUser()

// declare base class
function HttpComms() { }
HttpComms.prototype.httpGet = function (url, callback) {
  // Code to do http get request
};

// declare sub class
function UserComms() {
    this.getUser = function () {
        // error thrown here:
        httpGet('user/get', function (data) {
            console.log(data);
        });
    }
}
// hookup prototypal relationship between base and sub
UserComms.prototype = Object.create(HttpComms.prototype);

// create and call sub class.
var userComms = new UserComms();
userComms.getUser();

为什么会出现错误?最灵活的方法是什么?

最佳答案

注意httpGet前面的this.:

function UserComms() {
    this.getUser = function () {
        // error thrown here:
        this.httpGet('user/get', function (data) {
            console.log(data);
        });
    }
}

关于Javascript原型(prototype)继承基函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33041899/

相关文章:

Android1.5运行时库中的Android资源不被库消费者继承

java - 构造函数方法尝试从子类初始化insatnce变量得到StackOverflowError

javascript - 试图理解 JavaScript 中原型(prototype)的意义

javascript - JavaScript 中的原型(prototype)和构造函数(简单的英语)?

javascript - 如果我们创建新的原型(prototype)属性,对象会改变它的隐藏类吗?

javascript - 选择器有问题

javascript - 如何在我的组件文件中嵌套 v-fors?

javascript - 获取层未定义

javascript - 在 JavaScript 中移动图像

html - 如何防止子选择器失败的 CSS 继承?