JavaScript Object.prototype(按值)

JavaScript Object.prototype(按值),javascript,prototype,object,prototypejs,Javascript,Prototype,Object,Prototypejs,我想做一些类似于Object.prototype.dataTransfer=newdatatransfer()的事情,但我希望每个新对象都有自己的数据传输。我该怎么做 例如,如果我 var a = new Object(); var b = new Object(); Object.prototype.dataTransfer = new Object(); a.dataTransfer.prop = 1; b.dataTransfer.prop = 2; var a=新对象(); var b=

我想做一些类似于
Object.prototype.dataTransfer=newdatatransfer()的事情,但我希望每个新对象都有自己的
数据传输
。我该怎么做

例如,如果我

var a = new Object(); var b = new Object(); Object.prototype.dataTransfer = new Object(); a.dataTransfer.prop = 1; b.dataTransfer.prop = 2; var a=新对象(); var b=新对象(); Object.prototype.dataTransfer=新对象(); a、 dataTransfer.prop=1; b、 dataTransfer.prop=2; 我希望a.dataTransfer.prop仍然是1,而不是2


在上下文方面,我试图破解WebKit和IE,以便拖放事件的.dataTransfer对象能够正常工作。

通常您会将其添加到构造函数中,但由于您想要扩展主机对象(HtmlDomeElement),因此您不可能真正想要它。但是,如果您将问题的定义扩展到像这样的具体实现细节之外,可能还有另一种方法,
例如,一个库具有不同的(可能的)面向用户的API,该API根据其所在的浏览器的不同而工作,成功地抽象了浏览器并提供了统一的API。

通常您会将其添加到构造函数中,但由于您想扩展一个宿主对象(HTMLDOMELENT),因此您想要的实际上是不可能的。但是,如果您将问题的定义扩展到像这样的具体实现细节之外,可能还有另一种方法, 例如,库具有不同的(可能的)面向用户的API,该API根据其所在的浏览器的不同而工作不同,成功地抽象了浏览器并提供了统一的API。

在旁注中,如果您使用某人(另一个人)的API,则决不应扩展对象。原型无法处理的蹩脚代码:请注意,如果您使用的是某个人(另一个人)无法处理的蹩脚代码,则永远不要扩展Object.prototype