在Javascript中使用新函数扩展对象

在Javascript中使用新函数扩展对象,javascript,javascript-objects,Javascript,Javascript Objects,基本上,Dub和Dub.socialize对象已经作为包含的库存在。我正在尝试用我创建的一些附加自定义函数扩展库 我尝试了以下概念: Dub.socialize = { setUID : function(preUID, postUID) { // .. function code here } } 但是,我从控制台收到以下错误“未捕获类型错误:无法设置未定义的属性“setUID”” 显然,我对物体的认识有点误导。将此函数扩展到现有对象库的正确方法是什么

基本上,DubDub.socialize对象已经作为包含的库存在。我正在尝试用我创建的一些附加自定义函数扩展库

我尝试了以下概念:

Dub.socialize = {
    setUID : function(preUID, postUID)
    {
        // .. function code here
    }
}
但是,我从控制台收到以下错误“未捕获类型错误:无法设置未定义的属性“setUID”

显然,我对物体的认识有点误导。将此函数扩展到现有对象库的正确方法是什么?

尝试以下方法:

Dub.socialize.prototype.setUID = function(preUID, postUID) {
    ...
};


编辑:意识到您正在处理一个“静态”对象。这只适用于实例化的内容,因为您没有创建新实例,所以不适用。

一个简单的解决方案可能是

Dub.socialize.setUID =  function(preUID, postUID) {};

如果要为声明的对象创建函数,则必须使用“prototype”关键字

`变量Dub={ 社交化:新对象() };

Dub.socialize.prototype.setUID=函数(preUID,postiid){ //功能体 };`


哪一行导致了问题?该错误似乎与代码段中的对象文字不符。您是否正在尝试重新分配
setUID
<代码>Dub.socialize.setUID=?如果
Dub.socialize
已经存在,你可以做
Dub.socialize.setUID=function()…
@NikolaDimitroff-如果
Dub.socialize
已经存在,他必须按照你展示的方式来做,用他的代码他会丢失现有的对象及其所有现有的方法/属性“原型化”,但它似乎不太合适。人们仍然会收到错误“Uncaught TypeError:无法设置未定义的属性“setUID”。是的,我意识到这不起作用的原因是原型化是为了创建实例对象(例如,
new Dub.socialize()
)而不是附加到“静态”对象。