在我的认知里修改一个原型的prototype是写成这样的
function creatA(){ this.A = function(){}; /* this.B = ... this.C = ... blablabla */ } creatA.prototype = { test1 : "test1", test2 : function(){} };
但是如果这样封装的话,在html里面也能访问或者修改prototype里的值的样子。
请问怎么能够让外部不能访问呢?再封装一层吗?如果是这样那在html里初始化的时候改如何初始化呢?(想了很久搞得心情有点毛躁...翻书居然都翻不到了!)求各路大神来拯救一下我这个小白。
如果可以的话请带具体的例子!谢谢了!
题主的原意是不是想要让prototype在内部是可访问的,外部是只读的呢?如果是的话这样的可以考虑使用ES5中提供的静态对象的概念。
上手写个例子吧
首先你这种叫法是不对的。这就是js面向对象的写法哈,叫重新定义prototype原型总感觉怪怪的。
大胆猜测你想要的效果可能如下:
外部访问与使用
原理通过立即执行函数(或某一个作用域)封装。
手写
(function(){
// ...
// 挂载到全局变量上(window或global等) 或 返回值(函数或其他对象)
})();
工具或库
借助 webpack、browserify,requrejs和seajs等方式进行模块化开发(amd,cmd,umd等规范),写好模块接口即可。
可以多看看开源的源码~