如何使用Object.prototype将函数添加到对象构造函数
How can I added functions to Object constructor using Object.prototype?
这些天我一直在研究这些脚本,经过大量的研究,我仍然找不到答案。
所以这里是问题,我想(例如)添加一个函数到一个对象(.length()为例,因为本机还没有这个),我试过:
Object.prototype.length = function() { /* Some fancy work */ }; //It works!
Object.prototype["width"] = function() { /* Some fancy work */ }; //It works!
/* But the following DOESN'T work */
Object.prototype = {
length: function() { /* Some fancy work */ },
width: function() { /* Some other fancy work */ }
};
最后一个不起作用,这是使用Object{}这样的添加函数的最短方法,我不知道为什么。我遇到过这些代码(例如来自jQuery 1.7.1),我试图弄清楚它是如何工作的,但我不适合我。我认为它一定是可行的,因为jQuery使用了它,你能告诉我怎么做吗?
我见过很多人使用这些代码:
a = {
b: "Something",
c: function() {}
}
而其他人则使用:
a.prototype = {
b: "Something",
c: function() {}
}
那么有什么区别呢?这在某种程度上与第一个问题有关,所以我真的很想完全理解它。
1)你不能用
Object.prototype = {
length: function() { /* Some fancy work */ },
width: function() { /* Some other fancy work */ }
};
,因为你试图用两个方法替换对象的整个内置功能。这会破坏整个系统。
2) Object.method()
是其他语言中静态方法的类似物。它由伪类拥有,而不是由它的每个实例拥有。同时,Object.prototype.method
是常规方法或现场的类似物。只能使用实例访问。
3)对象创建时触发的自动功能为Object
。
相关文章:
- FabricJs-限制主对象内添加对象的移动区域
- 向Angular作用域对象添加对象数组——TypeError
- Javascript使用+添加对象
- 动态添加对象的jQuery事件处理程序
- 添加JQuery UI在Meteor中添加对象后可调整大小
- 在我的上下文中添加对象的动态方法
- 如何检测是否已使用 angular.forEach AngularJS 添加对象
- 在对象coffeescript中添加对象数组
- 使用Jquery在单击“”时显示表单;添加对象”;按钮
- 我可以向数组添加对象键吗
- 向扩展数组的JS集合添加对象(继承?)
- 尝试通过从自动完成推送添加对象时缺少 $$Hashkey
- 添加对象值 Javascript
- 在上传问题时添加对象
- 如何使用 javascript 的变量名称在数组中添加对象属性
- 在 JavaScript/TypeScript 中动态地“直接”添加对象属性到“this”
- 如何仅当对象不存在时才使用javascript添加对象
- 如何在数组末尾添加对象的副本
- rails在javascript url中添加对象
- ThreeJS-按不同顺序添加对象会影响alpha/显示