编程语言
首页 > 编程语言> > 如何在JavaScript中填充属性?

如何在JavaScript中填充属性?

作者:互联网

给定一个将以浏览器为前缀的事件的属性,我想创建一个使其看起来没有前缀的polyfill.

例如.接口FooEvent有一个webkitBar属性,我想使其显示为bar,以便处理程序可以写为onFoo = function(e){console.log(e.bar); }

我笨拙的初步猜测是在原型中注入一些东西FooEvent.prototype.getBar = function(){return this.webkitBar; }.但是,我不确定如何.

解决方法:

仅限ES5(和IE8)

Object.defineProperty(FooEvent.prototype, "bar", {
  get: function () {
    return this.webkitBar;
  },
  configurable: true
});

请注意扩展主机对象. (FooEvent是一个宿主对象)具有未知的副作用,是一个很大的未定义行为.

我推荐静态包装器

var eventUtil = {
  getBar: function (ev) {
    return ev.webkitBar;
  }
}

function handler (e) {
  var bar = eventUtil.getBar(e);
}

标签:polyfills,javascript
来源: https://codeday.me/bug/20190902/1793250.html