clean up utils

This commit is contained in:
Evan You 2013-10-08 10:29:37 -04:00
parent 6fcce9752a
commit 61bddb07d5
2 changed files with 22 additions and 7 deletions

View File

@ -75,11 +75,13 @@ function extend (options) {
var proto = ExtendedVM.prototype = Object.create(ParentVM.prototype)
utils.defProtected(proto, 'constructor', ExtendedVM)
// copy prototype props
if (options.props) {
utils.extend(proto, options.props, function (key) {
// do not overwrite the ancestor ViewModel prototype methods
return !(key in ViewModel.prototype)
})
var props = options.props
if (props) {
for (var key in props) {
if (!(key in ViewModel.prototype)) {
proto[key] = props[key]
}
}
}
// convert template to documentFragment
if (options.template) {

View File

@ -3,6 +3,8 @@ var config = require('./config'),
module.exports = {
// global storage for user-registered
// vms, partials and transitions
vms : {},
partials : {},
transitions : {},
@ -21,22 +23,33 @@ module.exports = {
})
},
/*
* Accurate type check
*/
typeOf: function (obj) {
return toString.call(obj).slice(8, -1)
},
extend: function (obj, ext, qualifier) {
/*
* simple extend
*/
extend: function (obj, ext) {
for (var key in ext) {
if (qualifier && !qualifier(key)) continue
obj[key] = ext[key]
}
},
/*
* log for debugging
*/
log: function () {
if (config.debug) console.log.apply(console, arguments)
return this
},
/*
* warn for debugging
*/
warn: function() {
if (config.debug) console.warn.apply(console, arguments)
return this