- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在探索一些代码,我看到了将一个构造函数嵌入另一个构造函数的做法多次使用:
/**
* @constructor
*/
function contact_duplicates_manager(global_objects)
{
this.field_processors =
{
"Phone1Number": new phone_processor(),
"Phone2Number": new phone_processor(),
"Phone3Number": new phone_processor()
}
//...here some other code
/**
* @constructor
*/
function phone_processor()
{
//...here some other code
function clear_phone(phone)
{
//...here some code
}
this.is_equals = function (value1, value2)
{
return is_equals(clear_phone(value1), clear_phone(value2));
}
}
}
//... later in the code
var valid = this.field_processors[fld_name]["is_equals"](native_value, custom_value)
你认为 phone_processor
构造函数应该在 contact_duplicates_manager
之外吗?
最佳答案
Do you think
phone_processor
function constructor should be outsidecontact_duplicates_manager
?
是的。虽然有效且有效,但效率不高且可能不可读。通过嵌套,每个 contact_duplicates_manager
实例都有 phone_processor
,它们具有不同的构造函数并继承自不同的原型(prototype)对象。这对于构造函数工厂或类似模式可能是必需的,但这些非常罕见,我怀疑您在这里需要它。
我的经验法则:
- Move every function that does not need access to any local closure variable to a higher scope.
- If you don't want it to be public in there, use an intermediate scope of an IEFE.
- If you need a constructor inside the scope of a multiple-times-executed function, try to share the prototype object among the constructors, and do not leak a local constructor.
最后一条规则的例子:
function Item(…) {…}
function Store {
var that = this;
this.items = [];
this.addItem = function(…) {
that.items.push(new LocalItem(…));
};
function LocalItem(…) {
Item.call(this, …);
this.store = that;
}
LocalItem.prototype = Item.prototype;
}
您不一定需要您称为类继承的全局 Item
函数,有时需要一个全局 proto
对象,您可以将其分配给 LocalConstructor。原型(prototype)
就够了。
关于javascript - 构造函数中的构造函数 - 不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20784304/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!