當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。