如何在JavaScript中公开方法

如何在JavaScript中公开方法,javascript,methods,visibility,Javascript,Methods,Visibility,我有一个名为Grid的对象,我使用new来创建它的实例。我希望能够从外部调用它的方法 这是(简化的)对象: 我发现其他主题也有类似的问题,但它们使用非常不同的对象结构。有没有可能在不重写所有内容的情况下公开该方法?实际对象实际上比这个大。您可以将其添加到对象原型中: var Grid = function() { .. }; Grid.prototype.methodName = function() { .. }; 也可以将其作为属性添加到构造函数中 var Grid = function(

我有一个名为
Grid
的对象,我使用
new
来创建它的实例。我希望能够从外部调用它的方法

这是(简化的)对象:


我发现其他主题也有类似的问题,但它们使用非常不同的对象结构。有没有可能在不重写所有内容的情况下公开该方法?实际对象实际上比这个大。

您可以将其添加到对象原型中:

var Grid = function() { .. };
Grid.prototype.methodName = function() { .. };
也可以将其作为属性添加到构造函数中

var Grid = function() {
  this.methodName = function() { .. };
};

请注意,您可以将其添加到对象原型中:

var Grid = function() { .. };
Grid.prototype.methodName = function() { .. };
也可以将其作为属性添加到构造函数中

var Grid = function() {
  this.methodName = function() { .. };
};

请注意

您可以将方法放在原型上。
this.publicMethod=function(){…}为使用该构造函数创建的每个实例创建一个公共的自己的方法。或者
this.setSelectedLine=setSelectedLine(是的,把它们放在原型上可能更好)(误导性的名字)谢谢。我以前试过,但现在我意识到当我使用
self.port.emit(“event”,gridObj)传递
Grid
对象时会出现问题(它是Firefox扩展)。看起来收到的对象和我发送的不一样。我必须学习更多关于扩展开发的知识。你可以把这些方法放在原型上。
this.publicMethod=function(){…}为使用该构造函数创建的每个实例创建一个公共的自己的方法。或者
this.setSelectedLine=setSelectedLine(是的,把它们放在原型上可能更好)(误导性的名字)谢谢。我以前试过,但现在我意识到当我使用
self.port.emit(“event”,gridObj)传递
Grid
对象时会出现问题(它是Firefox扩展)。看起来收到的对象和我发送的不一样。我必须学习更多关于扩展开发的知识。