javascript - JS中有这样的模式吗?

标签 javascript prototype

是否有一种简洁的方法来实现以下设计模式?

function a() {
    function x() { /* code */ }
    function y() { /* code */ }
    /* more code */
    x(); y(); // these can be called here
}

a();
a.x();
a.y();

我最近熟悉了原型(prototype),并且可能会使用这样的东西:

a = function() { }
a.prototype.x = function() { }
a.prototype.y = function() { }

但也许还有更简洁的方法?因为在我的代码中 a 也属于其他东西的原型(prototype),即

function plugin() { ... }
plugin.prototype.a = function () {}
plugin.prototype.a.prototype.x = function () {}
plugin.prototype.a.prototype.y = function () {}

最佳答案

你可以这样写:

function a() {
    this.x = function () { /* code */ }
    this.y = function () { /* code */ }
    /* more code */
    this.x(); this.y(); // these can be called here
}

var test = new a();
test.x();
test.y();

关于javascript - JS中有这样的模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10547087/

相关文章:

javascript - 有没有办法使用Javascript的Array.map函数返回对象+添加到它的新键值对

javascript - 石头、剪刀、布、可汗学院

javascript - 有没有办法在顶部显示日历的月份名称?

javascript - 使用 Promise.all 时可能出现游标竞争情况

c++ - 一个声明中多个函数的原型(prototype)

Javascript - 在 DOM 元素上制作原型(prototype)

javascript - 下载文件时 Node 渲染进程消失

javascript - 在 React.js 中实现输入标签的自动保存

javascript - 为什么这段使用原型(prototype)的 JavaScript 代码可以工作?

javascript - 通过实例方法修改类的所有成员