我的一个快速应用程序模块上有一个函数,参数页面传递给它:
module.exports.savePage = function (page){
console.log('-- Running M2PagePers.savePage.. ');
// il faut prévoir que quelqu'un utilise M2Page.save() pour un update
for(var prop in page) {
if(typeof(page[prop]) != 'function' && page.hasOwnProperty(prop))
console.log('page['+ prop +'] : ' + page[prop] + ' propertyIsEnumerable ? ' + page.propertyIsEnumerable(prop));
};
};
但是我在页面参数中有更多属性,我没想到会看到哪些是全局,进程, GLOBAL 和的根:
page[global] : [object global] propertyIsEnumerable ? true
page[process] : [object process] propertyIsEnumerable ? true
page[GLOBAL] : [object global] propertyIsEnumerable ? true
page[root] : [object global] propertyIsEnumerable ? true
page[console] : [object Object] propertyIsEnumerable ? true
page[url] : urltest1 propertyIsEnumerable ? true
page[type] : typetest1 propertyIsEnumerable ? true
page[definition] : deftest1 propertyIsEnumerable ? true
page[nb_visiteurs] : 656555 propertyIsEnumerable ? true
我并不关心他们来自哪里(我猜他们是一些node.js全局变量..)但是即使我试图用hasOwnProperty和propertyIsEnumerable进行测试来过滤for循环迭代的参数,仍在那里
---编辑---- 这是 index.js ,其中我定义了一个类 M2Page ,通过传递这个传递页面参数在 savePage 函数内部到 M2PagePers.savePage(this);
function M2Page (page, perspage) {
this.url= null;
this.type= null;
this.definition= null; // [sect1, sect2, ... ,sectN]
this.nb_visiteurs= null;
this.droits_acces= null;
this.secu_params= null;
this.content= null;
this.apparence=null;
// permet d'initialiser la page avec page_props dans le constructeur
flow.exec(
function(){
console.log('running flow m fn 1..');
if(page != null && page != undefined)
(function (for_in_loop_cb) {
for(var prop in page) {
console.log('inside for in : setting this page\'s ' + prop + ' to ' + page[prop]);
this[prop] = page[prop];
};
for_in_loop_cb();
})(this);
},function(){
console.log('running flow m fn 2.. ');
if(perspage) savePage();
}
);
//fonctions de persistance
function savePage () {
M2PagePers.savePage(this);
};