- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在阅读 dojo 1.9关于 declare.safeMixin()
的文档,着重说说它和lang.mixin
的区别.
这是我找到的解释......
safeMixin() is a function defined in dojo/declare. It has the same functionality as dojo/_base/lang::mixin(), but additionally it annotates all copied methods compatibly with dojo/declare. This decoration can affect how this.inherited() works in mixed-in methods.
我可以关注example但它并没有真正准确地解释添加了什么以及在哪里添加,任何人都可以进一步举例说明每个复制的方法添加了什么注释吗?
明确地说,我不是要解释继承,我只是专门询问使用 declare.safeMixin()
而不是 lang 添加的注释。混入
。
最佳答案
使用 safeMixin
允许您将函数混合到一个实例中,该实例可以利用 this.inherited
的方式与使用 declare
定义的原型(prototype)方法相同> 可以。
例如,以下将记录 2 条消息:
require([
"dojo/_base/lang",
"dojo/_base/declare"
], function(lang, declare){
var A = declare(null, {
method: function () {
console.log('method in prototype');
}
});
var a = new A();
declare.safeMixin(a, {
method: function () {
this.inherited(arguments);
console.log('method in instance');
}
});
a.method();
});
如果没有 safeMixin
,您将无法从重写方法调用 this.inherited(arguments)
(至少,在没有附加参数的情况下)——您d 最终得到一个错误:
Error: declare: can't deduce a name to call inherited()
关于javascript - dojo 1.9 : what annotation does declare. safeMixin 添加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20123183/
我已经阅读了 documentation ,尽管作者已经提到了不同之处,我还是不明白。 最佳答案 我创建了两个 fiddle 来向您展示 declare.safeMixin 和 lang.mixin
我一直在阅读 dojo 1.9关于 declare.safeMixin() 的文档,着重说说它和lang.mixin的区别. 这是我找到的解释...... safeMixin() is a funct
我是一名优秀的程序员,十分优秀!