尝试掌握来自 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/