vue2/src/observer/object-augmentations.js

36 lines
789 B
JavaScript

var _ = require('../util')
var objectAgumentations = Object.create(Object.prototype)
/**
* Add a new property to an observed object
* and emits corresponding event
*
* @param {String} key
* @param {*} val
* @public
*/
_.define(objectAgumentations, '$add', function (key, val) {
if (this.hasOwnProperty(key)) return
this[key] = val
this.$observer.convert(key, val)
this.$observer.emit('add', key, val)
})
/**
* Deletes a property from an observed object
* and emits corresponding event
*
* @param {String} key
* @public
*/
_.define(objectAgumentations, '$delete', function (key) {
if (!this.hasOwnProperty(key)) return
// trigger set events
this[key] = undefined
delete this[key]
this.$observer.emit('delete', key)
})
module.exports = objectAgumentations