当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript handler.defineProperty()用法及代码示例


handler.defineProperty() 方法可以定义新的属性。它还可以直接修改对象上的现有属性。它是 Object.defineProper() 的陷阱。此方法可用于两种情况。

  1. 当我们想要确保 getter 和 setter 的跨浏览器支持时。
  2. 每当我们想要定义自定义属性访问器时。

用法

defineProperty:function(target, property, descriptor)

参数

目标:目标对象。

属性:检索到的属性描述。

描述符:正在定义或修改的属性。

返回值

此方法返回一个布尔值

浏览器支持

Chrome 49
Edge 12
Firefox 18
Opera 36

例子1

var target = {}
target.foo = 'bar'
document.writeln(Object.getOwnPropertyDescriptor(target, 'foo'))

输出:

[object Object]

例子2

var xyz = {};
var proxy = new Proxy(xyz, {
  defineProperty:function(target, name, propertyDescriptor) {
document.writeln('in defineProperty');
return Object.defineProperty(target, name, propertyDescriptor);
  }
});
Object.defineProperty(proxy, 'bar', {} );

输出:

in defineProperty

例子3

var xyz ={};
var hu = {};
var proxy = new Proxy(xyz, {
   defineProperty:function(target, name, propertyDescriptor) {
    document.writeln('Learn Java Script');

       return Object.defineProperty(target, name, propertyDescriptor);
  }
      });
var pro= new Proxy(hu, {
  defineProperty:function(target, name, propertyDescriptor) {
    document.writeln('Proxt Method ');
       return Object.defineProperty(target, name, propertyDescriptor);
}
      });
   Object.defineProperty(proxy, 'bar', {} );
   Object.defineProperty(pro, 'hug', {} );

输出:

Learn Java Script Proxt Method






相关用法


注:本文由纯净天空筛选整理自 JavaScript handler.defineProperty() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。