gpt4 book ai didi

javascript - Javascript 继承的简单示例?

转载 作者:行者123 更新时间:2023-12-02 18:16:41 24 4
gpt4 key购买 nike

我在 SO 和其他地方搜索了继承的简单示例,但找不到。我见过的例子晦涩难懂、复杂,或者只是让我感到不舒服。我有几个服务函数,它们都共享一些功能,我称之为基本服务:

function baseservice() {
var loadAnimate = function () {
$('#ajax-spinner').show();
};
var loadComplete = function () {
$('#ajax-spinner').hide();
};
var apiEndpoint = function() {
return "http://api.com/api/";
};
};

我现在有其他具有此功能的服务:

var documentservice = function() {
// repeated code
var loadAnimate = function () {
$('#ajax-spinner').show();
};
var loadComplete = function () {
$('#ajax-spinner').hide();
};

var apiEndpoint = "http://api.com/api/";

var sendRequest = function (payload, callback) {
loadAnimate();
// do stuff with apiEndpoint
// call loadComplete on promise
};

我如何向文档服务提供对基本服务中这些项目的访问权限?

最佳答案

由于 Javascript 是一种原型(prototype)语言,因此它不具有像 Java 这样的语言所具有的类继承类型。如果您想要一个非常简单的继承实例,您可以尝试以下操作:

function baseservice() {
this.loadAnimate = function () {
$('#ajax-spinner').show();
};
this.loadComplete = function () {
$('#ajax-spinner').hide();
};
this.apiEndpoint = function() {
return "http://api.com/api/";
};
};

var documentservice = new baseservice();
documentservice.sendRequest() = function() { /* ... */ }

然后,documentservice 拥有 baseservice 的所有成员(请注意 baseservice 中的 this.函数声明而不是 var)。

如果您不想使用 new 关键字,您可以创建一个函数 extend 或者添加一个指向 baseservice 的字段(document. baseservice = baseservice)或进行深度(递归)复制,然后添加 documentservice.sendRequest

当然,人们已经通过类似 ded/klass 来解决这个问题。 .

关于javascript - Javascript 继承的简单示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19230735/

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