`
北极的。鱼
  • 浏览: 158997 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JS 疑惑

 
阅读更多

今天遇到一个迷惑的问题,是关于特权方法的,请看下面的代码:

function User(properties){
	for (var p in properties){
		(function(which){
			var py = p;
			which["get"+py] = function(){
				return properties[py];
			} 
			
			which["set"+py] = function(val){
				properties.py = val;
				alert(properties.py);//3. 我检测了这里,输出是louis
			}
		})(this);
	}
}
var user = new User({name: "Bob", age:44})
user.getname()//1. 输出为"Bob"
user.setname("louis")//2. 打算用此方法设置user实例的name属性
user.getname()//4. 结果,输出还是"Bob"

我是想动态生成实例的方法,打算是用user.setname("louis")去修改user这个实例的name属性。

在第三步上面一行,我尝试修改代码为which.py = val;还是输出为Bob,想不通为什么。

分享到:
评论
1 楼 北极的。鱼 2015-03-23  
function User(properties){ 
    for (var p in properties){ 
        (function(which){ 
            var py = p; 
            which["get"+py] = function(){ 
                return properties[py]; 
            }  
             
            which["set"+py] = function(val){ 
                properties[py] = val;  //应该这么修改,估计是js的bug
                alert(properties.py);//3. 我检测了这里,输出是louis 
            } 
        })(this); 
    } 

var user = new User({name: "Bob", age:44}) 
user.getname()//1. 输出为"Bob" 
user.setname("louis")//2. 打算用此方法设置user实例的name属性 
user.getname()//4. 结果,输出还是"Bob" 

相关推荐

    js学习-数码时钟-动态显示当前时间

    - **社区讨论**: Stack Overflow上有大量的JavaScript问题解答,可以解决实际开发中的疑惑。 通过这个项目,你可以深入理解JavaScript的时间处理和DOM操作,这些都是网页开发中不可或缺的基础技能。同时,这也是一...

    关于小程序wxml引用js中变量的疑问

    我是个入门小程序的新手,最近遇到了一点疑惑,请各路大神解答一下,十分感谢。 xxx.wxml 垃圾桶实时剩余容量 {{list.recy_left}} 可回收垃圾 有害垃圾 干垃圾 湿垃圾 在这个代码中,第三行可以取出来值,但是...

    JS生成树型结构

    在JavaScript(JS)编程中,生成树型结构是一种常见的需求,尤其在数据可视化、文件系统模拟、目录结构展示以及组织复杂的数据关系时。本篇将深入探讨如何利用...希望这个指南能帮你解决关于JS生成树型结构的疑惑。

    ligerTree.js的使用

    "iououu 一会 uiou 以偶欧普欧普uouohiouppuio"这部分可能是用户在尝试使用ligerTree.js时的操作过程或者反馈,可能包括了添加、删除、搜索节点等操作,也可能是遇到了一些问题或疑惑。 【标签】:“树的各种操作”...

    JavaScript标准参考教程(alpha).

    JavaScript被广泛应用于网页开发、移动应用、服务器端编程(Node.js)、游戏开发、数据可视化等多个领域,其易学性和强大的性能使其成为初学者和专业开发者的重要工具。JavaScript的开放性意味着有大量的开源库和...

    js加载等待效果

    "js加载等待效果"是一种技术手段,用于提升用户体验,确保用户在等待内容加载时能够有所感知,避免因页面无响应而产生疑惑或不耐烦。这个效果通常通过JavaScript实现,结合CSS和HTML,为用户提供一个视觉上的反馈,...

    JS省市2级联动代码

    - **JavaScript(JS)**:JavaScript是一种广泛使用的客户端脚本语言,用于增强网页的动态功能和交互性。它是网页开发中的核心部分,可以处理用户的输入、操作DOM(文档对象模型)以及与服务器进行异步通信。 2. *...

    s2-javascript-上机练习

    在学习JavaScript的过程中,通过与他人交流,我们可以解决疑惑,分享心得,提高学习效率。这种社区学习环境有助于加深对JavaScript的理解,尤其是面对复杂的编程问题时,团队协作和互相帮助显得尤为重要。 【标签】...

    JavaScript的数据类型问题

    这里我们将深入探讨JavaScript中的数据类型,帮助你消除疑惑,清晰地掌握这一核心概念。 JavaScript有两种主要的数据类型:基本数据类型和引用数据类型。 1. **基本数据类型**: - **Undefined**:当变量被声明但...

    JavaScript第3章答案

    本资源"JavaScript第3章答案"针对的是学习者在深入理解JavaScript时遇到的挑战,提供了详尽的解答,旨在帮助用户解决第3章的学习疑惑,无论是课后习题、上机实践还是理论问题,都覆盖了全面的答案。 在JavaScript的...

    javascript经典特效---打开页面的等待(一).rar

    在用户打开一个网页时,如果页面内容加载时间较长,可能会让用户感到不耐烦或疑惑,是否网页出现问题。为了解决这个问题,开发者通常会设计一个加载指示器,也就是我们常说的“等待”或“加载中”效果。这种效果可以...

    让我疑惑的html页面源代码

    在这个“让我疑惑的html页面源代码”问题中,我们可能遇到了一些常见或不常见的技术难点。 首先,让我们从HTML开始。HTML页面由一系列元素组成,每个元素都有自己的属性和内容。有时,源代码可能会因为错误的标签...

    arcgis_js_v410_api

    同时,详尽的API文档和社区资源为开发者解答疑惑,推动创新。 总的来说,ArcGIS JavaScript API 4.10是一个集强大功能和易用性于一体的Web地图开发框架。无论是地图展示、数据分析、用户体验还是服务集成,它都展现...

    新手学习js+css1教程

    JavaScript(简称JS)和CSS是构建网页动态效果和样式设计的两大关键技术。对于新手来说,理解和掌握这两者是成为Web开发者的必经之路。本文将深入讲解JS和CSS的基础知识,帮助初学者快速上手。 **JavaScript基础** ...

    安讯报表JS实例

    安讯报表JS实例是一套专为开发者设计的报表工具,旨在帮助他们利用JavaScript技术创建、设计和展示数据报表。此入门资料集包含了四个关键部分,分别对应不同的功能和使用场景,下面将对这些知识点进行详细解释。 1....

    一文扫清对 JavaScript 中的疑惑

    3. **代码生成(Code Generation)**:最后,基于 AST,JS 引擎生成可执行的机器代码或解释器指令。 二、RHS 与 LHS 查询 RHS(Right-Hand Side,右侧查询)和 LHS(Left-Hand Side,左侧查询)是理解 JavaScript ...

    javascript框架jQuery下载

    除了官方API文档,还有众多在线教程、论坛和社区,如Stack Overflow,可以帮助解答疑惑,提升技能。 总的来说,jQuery作为一个强大的JavaScript框架,是现代Web开发中不可或缺的工具。无论你是新手还是经验丰富的...

    等待数据加载jquery.BlockUI.js

    使用BlockUI.js非常简单,首先需要引入jQuery库和BlockUI.js插件的JavaScript文件,例如: ```html <script src="path/to/jquery.js"> <script src="path/to/jquery.blockui.js"> ``` 然后,可以通过调用$.blockUI...

    详细分析单线程JS执行问题

    大家在学习javascript的时候很多朋友在执行问题上有疑惑,小编通过本篇文章给大家详细的分析介绍了JS的执行问题,希望能够帮助到你理解。 一、介绍 随着js不断学习,你可能会慢慢的好奇,用了这么久的js,却不知道这...

    Html_Css_JavaScript教程

    HTML、CSS和JavaScript是...对于遇到的难点,可以查阅MDN Web文档或其他权威资源,以便深入理解并解决疑惑。最后,参与开源项目或社区论坛,如GitHub和Stack Overflow,可以提高解决问题的能力,并扩大自己的技术网络。

Global site tag (gtag.js) - Google Analytics