handler.setPrototypeOf()
JavaScript handler.setPrototypeOf()方法
如果成功更改了[[Prototype]],则
handler.setPrototypeOf 方法将返回布尔值true。否则,它将返回false。它是Object.setPrototypeOf()的陷阱。
语法
setPrototypeOf: function(target, prototype)
参数
target:目标对象。
prototype:该对象的新原型或为空。
返回值
返回布尔值。
浏览器支持
Chrome |
兼容性未知 |
Edge |
兼容性未知 |
Firefox |
49 |
Opera |
兼容性未知 |
示例1
<script>
var pro = { f:13}
var proxy = new Proxy(pro, {
setPrototypeOf(target, newProto) {
return newPrototype in target;
}
});
document.writeln('f' in proxy);
//expected output: true
</script>
输出:
示例2
<script>
var soo={
foo:1
}
var proxy = new Proxy(soo, {
setPrototypeOf(target, newProto) {
}
});
document.writeln('a' in proxy);
//expected output: false
</script>
输出:
示例3
<script>
var xyz = new Proxy({}, {
setPrototypeOf(target, newProto) {
if(key == "a") return true;
return ;false
}
}
)
var first= ("f" in xyz)
var last = ("g" in xyz)
document.write(""+first)
//expected output:false
document.write('<br/>');
document.write("" +last)
//expected output: false
</script>
输出: