JS类,私有变量为什么在两个对象中,初始化时设置不同值,当通过对象访问时,值会一样。

qingchuanE 2017-11-16 06:00:00
麻烦有懂的同学指教,谢谢。
直接上测试代码

var ClassTest = function(p1){
var value = 0;
if (p1 != undefined){
value = p1;
}

if (ClassTest.prototype.read == undefined){
ClassTest.prototype.read = function(){
return value;
}
}
};
test1 = new ClassTest(10);
test2 = new ClassTest(20);
value1 = test1.read();
value2 = test2.read();

value1和value2都是10。
...全文
240 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingchuanE 2017-11-17
  • 打赏
  • 举报
回复
再次感谢。
天际的海浪 2017-11-16
  • 打赏
  • 举报
回复
引用 2 楼 qingchuanE 的回复:
非常感谢,你的方法可以解决。 多问下,ClassTest.prototype.read 这样定义的是类函数吗?这个函数不建议访问私有变量吗。
ClassTest.prototype.read是在类的原型对象上设置方法。是所有实例对象共用的。但方法函数只有一个,只是处在一个闭包环境中,只能访问这一个闭包内的私有变量
qingchuanE 2017-11-16
  • 打赏
  • 举报
回复
非常感谢,你的方法可以解决。 多问下,ClassTest.prototype.read 这样定义的是类函数吗?这个函数不建议访问私有变量吗。
天际的海浪 2017-11-16
  • 打赏
  • 举报
回复
要设置每个对象自己的方法才能访问自己的私有变量,

   var ClassTest = function(p1){
        var value = 0;
        if (p1 != undefined){
            value = p1;
        }

        this.read = function(){
            return value;
        }
    };
    test1 = new ClassTest(10);
    test2 = new ClassTest(20);
    value1 = test1.read();
    value2 = test2.read();
打开链接下载源码: https://pan.quark.cn/s/84e76b6a86d6 Unity3D作为一个功能全面的跨平台3D游戏开发引擎,在游戏开发、虚拟现实(VR)、增强现实(AR)以及模拟仿真等多个领域得到了广泛的应用。在Unity3D引擎,SkyBox是一种用于构建环境背景的技术,它能够呈现逼真的天空与大气效果,从而使得游戏场景显得更加生动和真实。天空盒(SkyBox)可以被视为一种特殊的六面体纹理,它围绕整个场景的外部,营造出一种无限延伸的背景视觉感受。这些纹理一般由六个独立的图像构成,分别对应于立方体的六个面:正面、背面、左侧、右侧、顶部和底部。在Unity3D引擎内,开发者能够利用这些图像来设计出包括日落、星空、云层在内的多种不同的天空环境。资源"Unity3d-SkyBox-35个天空盒(含预览图)"涵盖了35种不同风格和主题的天空盒,为开发者提供了多样化的选择,使他们能够根据游戏的整体风格和场景需求来挑选最合适的背景。预览图的提供让开发者在游戏正式导入之前就可以直观地查看每个天空盒的效果,从而有效节省了调试的间。在Unity3D运用天空盒的具体步骤包括:1. **导入天空盒**:将包含天空盒的资料文件导入到Unity项目,这一过程通常可以通过将压缩包直接拖拽到Unity编辑器的Assets窗口完成。2. **建立Skybox材质**:在Unity环境,天空盒的表现形式为一个材质球(Material)。导入的资料,每个天空盒都应当对应一个材质文件。在Project窗口找到这些材质,右键并选择"Create" -> "Shader" -> "Universal Render Pipeline" -> "Skybox",这样就可以...

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧