JavaScript在一行中设置了命名函数的原型
JavaScript set prototype of named function on one line
所以我正试图找到一个真正干净的JavaScript函数原型模式。
我可以做到:
var Person = function () {
// person logic
}.prototype.foo = function () {
// people's foo logic
}
但我想命名我的类构造函数,而不是多余的。以下代码在单词prototype
之前产生意外的.
。
function Person() {
// person logic
}.prototype.foo = function () {
// people's foo logic
}
如何在同一行定义我的原型,而不将Person冗余地设置为变量?
"如何在不将Person冗余设置为变量的情况下在同一行定义我的原型?"
像这样(这里绝对没有冗余):
var Person; (Person = function() {
}).prototype.foo = function() {
};
为了处理=
运算符的较低优先级及其从右到左的关联性,需要将变量的声明与第一个赋值进行分离。
但国际海事组织对此没有任何好处。保持代码简单明了。
你的问题和评论都暗示你认为这里有一些冗余。没有。
您的要求似乎是任意的,但如果您真的想要这样做,那么将函数传递给一个帮助函数,该函数将这些部分组合在一起。
function why(ctor, members) {
for (var m in members)
ctor.prototype[m] = members[m];
return ctor;
}
并像这样使用:
var Person = why(function() {
}, {
foo: function() {
}
});
同样,没有真正的好处,只是增加了开销,但它满足了您的要求。
有可能吗?我所知道的最紧凑的模式是:
var Person = function() {
this.func = function() { console.log('hello'); };
};
var p = new Person();
console.log(p instanceof Person);
console.log(typeof p.func);
p.func();
相关文章:
- 创建对象函数原型和代码是错误的
- 使用sinon.js创建一个“;“间谍对象”;使用基于真实构造函数/原型的间谍方法
- 使用构造函数 - 原型从文本框输出值
- 为什么函数对象的实例没有继承函数原型属性
- 获取函数原型的源代码
- 挂钩文档.使用函数原型创建元素
- 理解函数原型和__proto__
- 在Javascript的函数原型中创建函数
- Emberjs :哈希中的函数原型
- Javascript函数在父函数原型中带有原型
- 构造函数原型-继承混淆
- 本地作用域函数原型覆盖
- 使用函数原型的 JavaScript 继承问题
- 为什么我的代码认为 canvas 函数在 JavaScript 中的构造函数原型中是未定义的
- 所有内容也都链接到函数原型
- Javascript MDN 函数原型绑定 polyfill 在数组中是可枚举的
- Javascript将对象传递给函数原型
- 我应该使用构造函数/原型吗?
- 为什么函数原型不能修改 .
- 删除函数原型对象