定义:通过一个对象代理另一个对象的属性的操作(读/写)
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <title>数据代理title>
-
- head>
- <body>
- <script type="text/javascript">
- let number = 18
- let person = {
- name: '张三',
- sex: '男',
- }
-
- Object.defineProperty(person, 'age', {
- // value: 18,
- // enumerable: true, // 控制属性是否可以被枚举,默认是false
- // writable: true, // 控制属性是否可以被修改,默认是false
- // configurable: true, // 控制属性是否可以被删除,默认是false
-
- // 当有人读取person的age属性时,get函数(getter)就会被调用,且返回值就是age的值
- get() {
- console.log('有人读取age属性了')
- return number
- },
-
- // 当有人修改person的age属性时,set函数(setter)就会被调用,且会收到修改的具体值
- set(value) {
- console.log('有人修改age属性了')
- number = value
- },
- })
- console.log(person)
- script>
- body>
- html>
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <title>Vue中的数据代理title>
- <script type="text/javascript" src="../js/vue.js">script>
- head>
- <body>
- <div id="root">
- <h2>学校名称:{{name}}h2>
- <h2>学校地址:{{address}}h2>
- div>
- <script type="text/javascript">
- const vm = new Vue({
- el: '#root',
- data: {
- name: '航空',
- address: '西安',
- },
- })
- script>
- body>
- html>
我是空谷有来人,谢谢大家支持!