js利用Object.defineProperty监听属性变化

js利用Object.defineProperty监听属性变化

const data = {};

function defineObjectProperty(obj, key, value) {
	Object.defineProperty(obj, key, {
		enumerable: true, //可否遍历
		configurable: true, //可否修改
		get() {
			return value;
		},
		set(newValue) {
			// 可监听对象属性变化
			console.log(newValue)

			value = newValue;
		}
	})
}
// 定义对象的属性
defineObjectProperty(data, 'sum', 0);

setInterval(_ => {
	data.sum++;
}, 1000)

你可能感兴趣的:(js,html)