“啊啊啊,急死个人,怎么办啊,赶着上班呢”
一天,张三需要外出,老婆生病了,在家没人,请求邻居李四,但是李四也不想鸟他。
在这时,object.defineProperty现身了,使用get方法Object.defineProperty(liSi, "see", {get()}
让李四照看张三的老婆(读取张三的数据),,使用set方法Object.defineProperty(liSi, "换衣服", {set()}
让李四帮张三换老婆的衣(修改数据),
终于张三实现他的愿望了。张三笑晕了,仰天大笑摔门而去,撂下一句狠话:Object.defineProperty在手,天下男人尽在吾妻枕边矣
源代码:
<html>
<script>
let zhangSan = {
see: "照看老婆",
帮老婆换衣服: false,
};
let liSi = {
see: "",
换衣服: "",
};
//代理人,属性,方法集
Object.defineProperty(liSi, "see", {
//當李四想看張三的老婆的時候,使用get方法
get() {
console.log("李四想照看张三的老婆");
return zhangSan.see;
},
});
Object.defineProperty(liSi, "换衣服", {
//当李四想帮张三的老婆换衣服的时候,使用set方法
set(value) {
console.log("李四成功帮张三的老婆换了衣服");
zhangSan.帮老婆换衣服 = value;
},
});
</script>
</html>
浏览器调试:
- 1.张三出门时的状态,此时无能力照看老婆
- 2.读取李四的see属性,return回张三的see属性
- 3.通过李四修改张三的换衣服属性为真
- 4.成功帮张三更换了她爱人的衣服,鉴定结果为真