问题标签 [extending-classes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 在插件中扩展 WooCommerce COD 支付网关
我想了解在 Wordpress 中加载各种类的顺序。Wordpress 中有许多插件可用,那么谁会比另一个更早加载。
考虑我想开发一个插件,该插件将使用一些现有的 Woocommerce 类。基本上我的自定义插件将扩展一些 Woocommerce 类(例如:WC_Gateway_COD)
如何确保现有类 'WC_Gateway_COD' 在执行以下语句之前已经定义和加载?
javascript - 在类语法和 Object.create 之前,“类”是如何扩展的?
我一直无法找到答案。JavaScript 中的对象有一个继承链;任何函数Function => Object
的链是 ,is 的实例的链,以及TypeError
isTypeError => Error => Object
的链TypeError
,奇怪的是,Function => Function => Object
。
除了直接构造函数之外,我还查找了如何使构造对象从另一个函数继承属性,期望得到的继承链是这样object => constructor => second function
的,并且这是一个构造函数扩展另一个构造函数的方式。我找到的解决方案是<second function>.<call or apply>(this[, optional arguments...])
在构造函数的主体内调用,但object instanceof <second function>
最终返回false
.
进一步的研究揭示了大多数使用类语法的答案 or Object.create
,但这些都是新的,并且自 JavaScript 语言创建以来,一个“类”扩展了另一个在 JavaScript 中的“类”就已经存在,因此还有其他一些方法可以做到这一点。这些信息应该与 JavaScript 构造函数的基本解释一起提到,但事实并非如此。扩展“类”(不是实际的类语法)导致更深的继承链的主要方法是什么?
示例结果:
错误的解决方案:
javascript - 扩展 Phaser3 容器类抛出 TypeError
我正在尝试扩展 phaser3 容器类以获取带有一些默认项目的可重用框。我读了这个。我尝试了不同的方法来传递场景对象,但都没有奏效。我也不确定这是否真的是问题所在。非常感谢任何帮助或提示。
这不会显示“top_bar”图像,但会抛出
javascript - Puppeteer - 如何扩展 ElementHandle 以添加更多方法?
您将如何扩展ElementHandle
该类以添加更多有用的方法,例如
句柄.isVisible?
我可以做 isVisible(handle) 但我更喜欢相反的方式。
我试图require( "puppeteer/lib/cjs/puppeteer/common/JSHandle" ).ElementHandle
通过原型从那里做并扩展它
但是当我将要求添加到我的代码中时,它破坏了我的代码的其他部分。有没有更好的方法?
谢谢!
django-models - django 'User' 对象在使用 post_save 时没有属性 'profile'
登录管理面板时显示此错误“'用户'对象没有属性'配置文件'”
我还希望每当学生注册时,都会创建一个由其中的时间字段命名的批次,并且在每个第 41 个学生上,创建另一个具有下一次选择的批次
php - 扩展 h5p 渲染器
我一直在尝试扩展 h5p 渲染器的类,但无济于事。我想系统中可能有大量的“渲染器”类,这就是我收到错误的原因。
我做什么:需要主类文件:
该类如下所示:
然后在我的主题中,我尝试扩展这个类:
但这会产生错误Exception - Class 'renderer' not found
我怎样才能让它工作?
ruby - 如何通过扩展类来干掉 SemanticLogger::Loggable 和 SemanticLogger::Loggable::ClassMethods?
概括
我正在尝试使用SemanticLogger 4.10.0 作为 Ruby 3.1.1 应用程序中动态跟踪解决方案的一部分。但是,我似乎误解了有关如何或在何处访问SemanticLogger::Loggable应该在类上创建的记录器实例的一些东西,并且在从扩展类内部调用#logger_measure_method时出现 NameError 异常(如下所述),因为我似乎无法正确实现类扩展。
说明问题的代码
带有 CustomLogger 的模块
由 CustomLogger 扩展的模块
执行守则
代码的问题和问题
我的问题是:
潜在的(可能是 X/Y)问题是我想干掉在我跟踪的每个类中包含SemanticLogger::Loggable和SemanticLogger::Loggable::ClassMethods的代码,并自动测量扩展类的方法开发中。
当我尝试使用旨在引入 SemanticLogger::Loggable 的模块来扩展类时,我似乎并不总是将记录器用作整个类的访问器。
我还担心将模块包含在多个类中会导致重复的附加程序被添加到#appenders数组中,无论它实际存储在哪里。
最重要的是,当我尝试通过扩展类来自动添加日志记录和方法测量时,我会收到如下错误:
~/.gem/ruby/3.1.1/gems/semantic_logger-4.10.0/lib/semantic_logger/loggable.rb:96:in `alpha': #SomeGem::Foo:0x00000001138f6a38 的未定义局部变量或方法`logger' (NameError) 来自 foo.rb:51:in `<main>'
我是否遗漏了一些关于如何使用 SemanticLogger 扩展类的明显内容?如果有更好的方法来完成我想做的事情,那就太好了!如果我做错了什么,理解那也很棒。如果这是一个错误,或者我使用错误的功能,这也是有用的信息。