我正在寻找Addy Osmani关于出版/订阅模式的要点:
https://github.com/addyosmani/pubsubz/blob/master/pubsubz.js
他将对象展现为像这样的全局:
;(function ( window, doc, undef ) {
var topics = {},
subUid = -1,
pubsubz ={};
....
getPubSubz = function(){
return pubsubz;
};
window.pubsubz = getPubSubz();
创建getPubSubz
函数的价值是什么?简单地写一下是不是更直截了当:
window.pubsubz = pubsubz;
答案 0 :(得分:2)
是的,在这种情况下,因为getPubSubz
只在一个地方被调用,在声明它之后,它可以安全地被内联。
很难确切地说出作者的想法,但是在不断增长的代码库中,拥有“getter”函数可能会有一些价值,如果需要获取pubsubz
对象的行为可以修改它更先进的逻辑。
答案 1 :(得分:2)
绝对是。
在这种情况下,使用吸气剂的原因只有两个:
通过GitHub的力量,我们实际上可以eliminate option one,因为吸气剂是以其当前状态添加的 - 所以我认为我们可以确定地说这只是一个良好实践的问题。 / p>
*正如jantimon在下面的评论中提到的,在大多数情况下(包括这个)并不是特别有利,并且此代码不一定需要作为示例。 < / p>