用mongoose模块后 不能给任何对象添加自定义原型方法

Object.prototype.addkey=function(key,value){//动态添加属性
  if(key){
       this[key]=value
   }
   return this
}

const mongoose = require('mongoose'); //引入mongoose数据库
var Q = require("q");
 mongoose.connect('mongodb://xxxx', {
  useNewUrlParser: true,
  useCreateIndex: true,
  useFindAndModify: false,
  user: 'xxx',
  pass: 'xxx',
});

console.log(({a:1}).addkey("ddd",2222)) 

控制台会报错:

the options [addkey] is not supported

这模块也太霸道了吧,给对象添加自定义原型方法应该是很常用的

阅读 2k
1 个回答

mongoose不让你添加一个可枚举属性罢了,不然它叠代的时候你说它该不该带上咱自定义的addkey,可以换种方式,用Object.defineProperty,这么写:

Object.defineProperty(Object.prototype, 'addkey', {
  value :   function(key,value){
                if(key){
                    this[key]=value
                }  
                return this  
            }
});

希望能帮助到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏