- 0133技术站
- 联系QQ:18840023
- QQ交流群
- 微信公众号
描述:此对象混入了另一个对象中的所有成员。
@mixes <OtherObjectPath>
@mixes标签指示当前对象混入了OtherObjectPath
对象的所有成员,被混入的对象就是一个@mixin。
首先,我们用@mixin标签描述一个混入:
/** * This provides methods used for event handling. It's not meant to * be used directly. * * @mixin */var Eventful = { /** * Register a handler function to be called whenever this event is fired. * @param {string} eventName - Name of the event. * @param {function(Object)} handler - The handler to call. */ on: function(eventName, handler) { // code... }, /** * Fire an event, causing all handlers for that event name to run. * @param {string} eventName - Name of the event. * @param {Object} eventData - The data provided to each handler. */ fire: function(eventName, eventData) { // code... } };
现在,我们添加一个FormButton类,并且调用"mix"函数,将Eventful的所有功能混入到FormButton,这样FormButton也可以触发事件和监听了。我们使用@mixes标签,以表明FormButton混入了Eventful的功能。
例如,使用@mixes标签:
/** * @constructor FormButton * @mixes Eventful */ var FormButton = function() { // code... }; FormButton.prototype.press = function() { this.fire('press', {}); } mix(Eventful).into(FormButton.prototype);
推荐手册