Javascript AOP支持
与大多数动态语言(如python和ruby)一样,在没有任何语言本身支持的情况下(对于90%的aop功能而言),实现这一点非常简单。然而,他在这方面得到了直接的支持。最新版本中发生了什么?他们把它拿走了吗Javascript AOP支持,javascript,dojo,aop,Javascript,Dojo,Aop,与大多数动态语言(如python和ruby)一样,在没有任何语言本身支持的情况下(对于90%的aop功能而言),实现这一点非常简单。然而,他在这方面得到了直接的支持。最新版本中发生了什么?他们把它拿走了吗 是否还有另一个javascript aop库应该得到更多关注?考虑到javascript中灵活的语法糖果,我想可能会有10亿个aop库 谷歌快速搜索结果如下: 。。。另一个考虑到Javascript中灵活的语法糖果,我想会有十亿个AOP库 谷歌快速搜索结果如下: 。。。另一个方
是否还有另一个javascript aop库应该得到更多关注?考虑到javascript中灵活的语法糖果,我想可能会有10亿个aop库 谷歌快速搜索结果如下:
。。。另一个考虑到Javascript中灵活的语法糖果,我想会有十亿个AOP库 谷歌快速搜索结果如下:
。。。另一个方面dojox.lang.aspect仍然存在,仍然被严肃的项目使用。没有人把它拿走。事实上,我希望它的一部分将成为即将到来的Dojo2.0的重要组成部分 你问这个问题的原因是什么?找不到一些链接,或者是其他原因?让我知道,我会帮你的 更新: API文档链接:
我关于AOP的博客文章的链接(列在你的问题中:)仍然是最新的,因此你可以将其用作一般参考。我计划将其迁移到官方参考文档中。
我关于AOP的博客文章的链接(列在你的问题中:)仍然是最新的,因此你可以将其用作一般参考。我计划将其迁移到官方参考文档中。好吧,您可以尝试这些装饰程序,它们为TypeScript(ES2015/2016)带来了真正的AOP体验。看看这个代码
import { Before, After, Pointcut } from "./aspect";
class Foo {
@Pointcut
bar(){
console.log( "calling bar", arguments );
}
}
class Advice {
@Before( Foo, "bar" )
preLog() {
console.log( "calling pre-log", arguments );
}
@After( Foo, "bar" )
postLog() {
console.log( "calling post-log" );
}
}
(new Foo()).bar( 1, 2, 3 );
// calling pre-log 1,2,3
// calling bar 1,2,3
// calling post-log
那么,您可以尝试这些装饰器,它们为TypeScript(ES2015/2016)带来了真正的AOP体验。看看这个代码
import { Before, After, Pointcut } from "./aspect";
class Foo {
@Pointcut
bar(){
console.log( "calling bar", arguments );
}
}
class Advice {
@Before( Foo, "bar" )
preLog() {
console.log( "calling pre-log", arguments );
}
@After( Foo, "bar" )
postLog() {
console.log( "calling post-log" );
}
}
(new Foo()).bar( 1, 2, 3 );
// calling pre-log 1,2,3
// calling bar 1,2,3
// calling post-log
当然,任何语言都会支持AOP,因为这是一种技术,您应该自己实现它 ES7修饰符对于AOP语法来说是很棒的,但是没有必要使用typescript来获得真正的AOP体验。即使ES5也可以做到:
var Class = require("kaop").Class;
var Dummy = Class({
someMethod: [ //decoratedMethod
"subscribe","$inject", //befores
function($$dep1){
//method body
},
"trigger: 'action'", //afters (advice with an argument)
],
anotherMethod: function(){
/* method without advices */
}
})
我建议您检查一下我最近的工作,它实现了顶级AOP特性,甚至异步调用
(阿尔法)(如果你喜欢ES7装饰师)
我还写了一篇文章来解释这个技巧
任何语言都肯定会支持AOP,因为AOP是一种技术,您应该自己实现它 ES7修饰符对于AOP语法来说是很棒的,但是没有必要使用typescript来获得真正的AOP体验。即使ES5也可以做到:
var Class = require("kaop").Class;
var Dummy = Class({
someMethod: [ //decoratedMethod
"subscribe","$inject", //befores
function($$dep1){
//method body
},
"trigger: 'action'", //afters (advice with an argument)
],
anotherMethod: function(){
/* method without advices */
}
})
我建议您检查一下我最近的工作,它实现了顶级AOP特性,甚至异步调用
(阿尔法)(如果你喜欢ES7装饰师)
我还写了一篇文章来解释这个技巧
在最新文档中找不到。这让它看起来像是被遗弃了,当然不是。我会调查医生的问题。现在我正在给我的答案添加API文档链接。太好了。如果它是在dojo之外作为一个单独的库提供的话,那就更好了,但是javascript项目,在Nodejs项目之外,通常不会把模块化作为一个大问题。它仍然显示。对于Dojo2.0,我们正在开发一种通用的模块和包格式,可以被其他项目采用。所以你的愿望可能会实现OTOH没有人阻止其他开发人员将Dojo的任何部分移植到其他库或将其转换为独立库。这绝对是可能的,而且不像一些人想象的那么难。在最新的文档中找不到。这让它看起来像是被遗弃了,当然不是。我会调查医生的问题。现在我正在给我的答案添加API文档链接。太好了。如果它是在dojo之外作为一个单独的库提供的话,那就更好了,但是javascript项目,在Nodejs项目之外,通常不会把模块化作为一个大问题。它仍然显示。对于Dojo2.0,我们正在开发一种通用的模块和包格式,可以被其他项目采用。所以你的愿望可能会实现OTOH没有人阻止其他开发人员将Dojo的任何部分移植到其他库或将其转换为独立库。这绝对是可能的,也不像有些人想象的那么难。