您的位置:首頁> 前端教程> ES6教程
文章導航

Proxy handler.preventExtensions() 方法

2019-6-16 16:05| 作者: admin| 查看: 1244| 評論: 0|來自: 螞蟻部落

關于Proxy更多內容可以參閱JavaScript Proxy和Reflect一章節。

此方法可以攔截Object.preventExtensions()操作。

返回一個布爾值用來說明操作是否成功。

語法結構:

[JavaScript] 純文本查看 復制代碼
var p = new Proxy(target, {
  preventExtensions: function (target) {
    //code
  }
});

參數解析:

(1).target:原始target目標對象。

特別說明:如果target對象是不可擴展的,那么handler.preventExtensions()返回值必須是true,否則報錯。

代碼實例:

[JavaScript] 純文本查看 復制代碼运行代码
var antzone = {
  webName: "螞蟻部落",
  url: "www.tlmhwf.tw",
  age: 4,
  address:"青島市南區"
}
var p = new Proxy(antzone, {
  preventExtensions: function (target) {
    return true;
  }
});
console.log(Object.preventExtensions(p))

上面的代碼會報錯,因為Object.isExtensible(antzone)返回值是true,handler.preventExtensions()返回值不能是true。

[JavaScript] 純文本查看 復制代碼运行代码
var antzone = {
  webName: "螞蟻部落",
  url: "www.tlmhwf.tw",
  age: 4,
  address:"青島市南區"
}
var p = new Proxy(antzone, {
  preventExtensions: function (target) {
    Object.preventExtensions(target);
    return true;
  }
});
console.log(Object.preventExtensions(p))

上面的代碼不會報錯,因為通過Object.preventExtensions(target)將target對象設置為不可擴展。

[JavaScript] 純文本查看 復制代碼运行代码
var antzone = {
  webName: "螞蟻部落",
  url: "www.tlmhwf.tw",
  age: 4,
  address:"青島市南區"
}
var p = new Proxy(antzone, {
  preventExtensions: function (target) {
    Object.preventExtensions(target);
    return true;
  }
});
console.log(Reflect.preventExtensions(p))

Object.preventExtensions()操作也會被handler.preventExtensions()方法攔截。


鮮花

握手

雷人

路過

雞蛋

最新評論

返回頂部
浙江6十1开奖号码查询r