简体   繁体   English

JavaScript Object.prototype按值

[英]JavaScript Object.prototype by value

I want to do something like Object.prototype.dataTransfer = new DataTransfer(); 我想做类似Object.prototype.dataTransfer = new DataTransfer(); , but I want every new object to have it's own dataTransfer . ,但我希望每个新对象都具有自己的dataTransfer How do I do this? 我该怎么做呢?

For example, if I do 例如,如果我这样做

var a = new Object();
var b = new Object();
Object.prototype.dataTransfer = new Object();
a.dataTransfer.prop = 1;
b.dataTransfer.prop = 2;

I want a.dataTransfer.prop to still be 1, not 2. 我希望a.dataTransfer.prop仍为1,而不是2。

For context, I'm trying to hack WebKit and IE so that the .dataTransfer object of the drag and drop events works appropriately. 对于上下文,我正在尝试破解WebKit和IE,以便拖放事件的.dataTransfer对象正常工作。

Normally you'd add it in the constructor, but since you're wanting to extend a host object (HTMLDomElement), what you want isn't really possible. 通常,您可以将其添加到构造函数中,但是由于您要扩展宿主对象(HTMLDomElement),所以实际上无法实现所需的对象。 However, if you broaden the definition of your problem beyond specific implementation details like this, there may be another way, such as a library with a different (possible) user facing API that works differently depending on which browser it is in, successfully abstracting the browser and supplying a uniform API. 但是,如果您将问题的定义扩展到像这样的具体实现细节之外,则可能存在另一种方式,例如,具有不同(可能)面向用户的API的库根据其所使用的浏览器的不同工作方式不同,从而成功地抽象了浏览器并提供统一的API。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM