为了账号安全,请及时绑定邮箱和手机立即绑定

将自定义函数添加到Array.prototype

将自定义函数添加到Array.prototype

慕容森 2019-12-02 09:53:43
我正在研究启用AJAX的asp.net应用程序。我刚刚向Array.prototype添加了一些方法,例如Array.prototype.doSomething = function(){   ...}该解决方案对我有用,可以以“漂亮”的方式重用代码。但是,当我测试了它与整个页面一起使用时,我遇到了问题。我们有了一些自定义的Ajax扩展程序,它们开始表现出意想不到的效果:某些控件在其内容或值上显示为“未定义”。这可能是什么原因?我是否缺少修改标准对象原型的东西?注意:我很确定,当我为Array修改原型时,错误就开始了。它应该仅与IE兼容。
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

虽然可能会与其他代码发生冲突,但在原型上重写功能仍然存在风险,但是如果您想使用现代版本的JavaScript进行此操作,则可以使用Object.defineProperty方法,关闭可枚举的位,例如


// functional sort

Object.defineProperty(Array.prototype, 'sortf', {

    value: function(compare) { return [].concat(this).sort(compare); }

});


查看完整回答
反对 回复 2019-12-02
  • 3 回答
  • 0 关注
  • 639 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信