开发者社区> 问答> 正文

请教js如何模拟进程概念等相关问题

同一浏览器窗口内的js代码,如果模拟像进程那样的代码隔离?

如何做单例?

如何对某个函数禁止重定义?

是否可以用js手动起个新解析进程?

如何限定函数必须归于类中?也就是限定不能直接function xxx(){},必须XXX.prototype = {

xxx : function(){}

}

如何模拟const?

如何设计对代码的调用授权,也就是某些实例,类,函数得有权限才能调用?

还有很多问题。。。。。。

俺知道问得比较小白,大家不要被雷到,但目前做的东西,能实现这些,会很好办。

展开
收起
a123456678 2016-07-15 10:11:10 2282 0
1 条回答
写回答
取消 提交回答
  • 单例/隔离/禁止重定义: var sigleton = (function(){var privateObj = 10;var getObj=function(){return privateObj++;};return {get:getObj};})();//闭包非常强大

    1. 返回的是{}, 即对象实例, 不可new.
    2. 不可重定义, sigleton只是一个引用, 覆盖sigleton只是改变了引用的指向, 对于这个匿名函数, 你无法操作他, 他仍然存在, 也仍然没变, JS中本来就没有办法覆盖, 而都是改写引用重新指向, 也就是说JS的变量都不是指针.
    3. privateObj你无法直接访问, 只能通过get方法访问, 这就是隔离, 不是和私有一样吗? 另外, 这里的privateObj就是一个const, 大家共用, 没办法直接改写.
    4. JS中没有进程, 他是运行在浏览器进程中的线程, 你可以在JS中通过setTime或setInterval实现多线程效果.
    5. JS这么灵活, 代码授权肯定可以做了, 只是贴出来会非常长, 需要建设的基础工具太多, 以前实现过类似的东西, 代码无法自行执行, 必须通过框架才能执行, 当然是在一些特定的场景中.
    2019-07-17 19:56:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载