JavaScript的Python装饰器
Python decorator for JavaScript
本文关键字:Python JavaScript 更新时间:2023-09-26
我正在寻找JavaScript中等效的Python装饰器(即@property
),但我不确定如何做到这一点。
class Example:
def __init__(self):
self.count = 0
self.counts = []
for i in range(12):
self.addCount()
def addCount(self):
self.counts.append(self.count)
self.count += 1
@property
def evenCountList(self):
return [x for x in self.counts if x % 2 == 0]
example = Example()
example.evenCountList # [0, 2, 4, 6, 8, 10]
我如何在JavaScript中做到这一点?
显然在Javascript中不存在这种确切的语法,但是有一个方法Object.defineProperty
,它可以用来实现非常类似的东西。基本上,这个方法允许您为特定对象创建一个新属性,并且作为所有可能性的一部分,定义用于计算值的getter方法。
下面是一个简单的例子。
var example = {
'count': 10
};
Object.defineProperty(example, 'evenCountList', {
'get': function () {
var numbers = [];
for (var number = 0; number < this.count; number++) {
if(number % 2 === 0) {
numbers.push(number);
}
}
return numbers;
}
});
就像@property
可以有setter一样,Object.defineProperty
也可以。您可以通过阅读MDN上的文档来检查所有可能的选项。
相关文章:
- 为什么在python中使用异常比javascript更容易接受
- 如何访问Web2py'中python代码中的JavaScript变量;s视图
- 调用Javascript中的Python函数,读取静态文件(Flask)
- 如何使用Python/Selenium网络驱动程序处理Angularjs/Javascript下拉列表
- 如何在新创建的模块中从Odoo v8中的Javascript文件中调用python函数
- 创建一个html表单并使用javascript访问中的python脚本
- 当Python在Javascript中发送时,值将转换为UNICODE
- 将dicts数组从python传递到Javascript
- python到javascript正则表达式
- Python Javascript哈希库,以确保JSON对象在传输过程中不会损坏
- Python javascript builder
- Python/JavaScript/HTML 动态创建计算机网络图
- Selenium - Python - Javascript 下拉菜单选项值
- 自动调优/ Python / Javascript
- Selenium Python Javascript Execution
- Selenium python javascript弹出窗口
- Selenium RC / Python / JavaScript .aspx /循环语句
- Python/Javascript数字精度
- Python - JavaScript 网页抓取与硒不能正常工作
- Python/Javascript/AJAX 实时搜索帮助