handler.set()
JavaScripthand handler.set()方法
handler.set 方法是将值分配给属性值。该广告集在插入顺序中可以是
iterator 。它是独特项目的集合。如果分配成功,则返回true。否则,返回false。
迭代器是一个对象,它定义序列,并在终止时定义返回值。
语法
set: function(target, property, value, receiver)
参数
target:目标对象。
property:目标名称或符号
value:属性的新值。
receiver:这通常是代理本身。通过原型链或其他各种方式间接设置处理程序。
返回值
返回布尔值。
浏览器支持
Chrome |
49 |
Edge |
12 |
Firefox |
18 |
Opera |
36 |
示例1
<script>
var proxy = { "a": 1, "b": 2 }
var pset = new Proxy(
proxy, {
set: function(y, idx, value) {
y[idx] = value * 10
}
}
)
pset.c = 3
for(var z in pset) {
document.writeln(z + "=" )
// print equal sign.
document.writeln(pset[z])
//expected output: a= 1 b= 2 c= 30
}
</script>
输出:
示例2
<script>
var x = { foo: 1 };
var proxy = new Proxy(x, {
set: function(target, name, value, proxy) {
document.writeln ('in set');
target[name] = value.toUpperCase();
}
});
proxy.foo = 'proxy method';
document.writeln(x.foo); // value stored on x is uppercase
//expected output: in set PROXY METHOD
</script>
输出:
示例3
<script>
const q={
foo:1
}
const p = new Proxy(q, {
set: function(target, prop, value, receiver) {
target[prop] = value;
document.writeln('property set: ' + prop + ' = ' + value);
//expected output: property set: a = 10
}
})
document.writeln('a' in p);
//expected output: false
p.a = 10;
// "property set: a = 10"
</script>
输出: