Javascript-一种封装(添加隐私)到MVC中的模型的方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript-一种封装(添加隐私)到MVC中的模型的方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2526字,纯文字阅读大概需要4分钟。
内容图文
![Javascript-一种封装(添加隐私)到MVC中的模型的方法?](/upload/InfoBanner/zyjiaocheng/692/a3b921f368854aabb7a5c90f062b38af.jpg)
我为模型命名空间和一个像这样的单个控制器:
var MC = {};
然后根据需要添加属性.
例如,初始化我所有模型的代码如下所示:
MC.initAll = function() {
MC.MASettings.init();
MC.MATweet.init();
MC.MUserTry.init();
MC.MUserNew.init();
MC.MUserExist.init();
Su.UserOut.init();
Su.Media.init();
}
我打算将其更改为循环…通过MC进行循环,如果存在init()则执行它.
我对这种架构唯一的困扰是,在所有一切都是公共的传统意义上,没有隐私或封装.
另外,我不实例化我的模型,我只是将它们称为函数,但这与.js中的实例化几乎相同.
有没有一种简单的方法可以为我的模型添加隐私,并且仍然可以将它们作为对象中的属性进行访问.
仅举一个例子,这是我最简单的模型:
MC.MUserTry = {
init: function() {
document.getElementById( 'ut_but' ).addEventListener( "click", function( ) {
MC.Controller( MC.o_p( 'MUserTry' ) );
}, false );
},
pre : function( o_p ) {
o_p.page.email = document.getElementById( 'ut_but' ).getAttribute( 'data-email' );
return o_p;
},
post : function( o_p ) {
sLocal( o_p.server.hash, o_p.server.privacy, o_p.server.name, o_p.server.picture, 'ma' );
vStateUpdate( o_p.server.name, o_p.server.picture, o_p.server.privacy );
vTPane( o_p.server.tweets ); vBPane( o_p.server.bookmarks );
vFlipP( 'ma' );
}
};
pre()在ajax调用之前运行,post()在运行之后,并且init()通过onload事件或类似事件调用.
这是实际实现此功能的控制器.
MC.Controller = function( o_p ) {
console.log( 'o_p = ' + o_p.model );
var t1, t2, t3, t4,
i1, i2, i3, i4,
o_p_string_send;
if( SU.get('debug') ) {
t1 = new Date().getTime();
}
o_p = MC[ o_p.model ].pre( o_p );
if ( o_p.result !== 'complete' ) {
o_p_string_send = JSON.stringify( o_p );
if( SU.get('debug') ) {
t2 = new Date().getTime();
console.log( '---------------Server Send: \n ' + o_p_string_send );
}
cMachine( 'pipe=' + o_p_string_send , function( o_p_string_receive ) {
if( SU.get('debug') ) {
console.log( '---------------Server Receive: \n ' + o_p_string_receive );
t3 = new Date().getTime();
}
o_p.server = JSON.parse( o_p_string_receive );
MC[ o_p.model ].post( o_p );
if( SU.get('debug') ) {
t4 = new Date().getTime(); i1 = t2-t1 ; i2 = t3-t2 ; i3 = t4-t3; i4 = o_p.server.time;
console.log( '---------------Time: \n Pre | Transit | Post | Server = ', i1, ' | ', i2, ' | ', i3,' | ', i4 );
}
} );
}
};
我想增加隐私.如何做到这一点,同时仍使模型可作为对象属性访问?
有关
How to create global, instance based objects from local scope?
解决方法:
Is there a simple way to add privacy to my models and still have them accessible as properties in an object?
显然,您将需要将整个对象设为私有.是的,这也将与JavaScript中的其他任何隐私一起使用-闭包.
看一下module pattern(网络上有很多关于此的教程).
内容总结
以上是互联网集市为您收集整理的Javascript-一种封装(添加隐私)到MVC中的模型的方法?全部内容,希望文章能够帮你解决Javascript-一种封装(添加隐私)到MVC中的模型的方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。