`
北极的。鱼
  • 浏览: 151210 次
  • 性别: 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" 

相关推荐

    一文扫清对 JavaScript 中的疑惑

    一文扫清对 JavaScript 中的疑惑 文章目录一文扫清对 JavaScript 中的疑惑一、前言1. 写作原因 :2. 阅读须知 :3. 文章声明 :二、荡平疑惑1. 我的 JS 代码被浏览器加载后到发生了什么 ?2. 什么是 RHS、LHS 查询 ?-1)....

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

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

    想学习javascript JS和jQuery哪个重要 先学哪个

    js,即JavaScript 在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript JavaScript一种直译式...

    JavaScript基础语法让人疑惑的地方小结

    JavaScript基础语法让人疑惑的地方小结,学习js的朋友可以了解下

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

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

    【JavaScript源代码】javascript拖曳互换div的位置实现示例.docx

    javascript拖曳互换div的位置实现示例  1 实现原理 利用dom元素的dragstart/ondragover/ondrop事件完成,在拖曳开始的时候获取到拖曳元素,然后允许拖动,最后鼠标抬起后放到新的位置;这里用到了event....

    大名鼎鼎SWFUpload- Flash+JS 上传

    JavaScript 库: SWFUpload.js Flash控制元素: SWFUpload_f8.swf 或者 SWFupload_f9.swf 事件处理 使用SWFUpload遇到的多数问题是由不正确地设置或者定义了糟糕的处理事件引起的。 初始化和设置 SWFpload必须在...

    js ComboGrid(下拉grid)

    ComboGrid(下拉grid),ajax实时数据抽取,键盘上下回车等进行数据选取,代码很简洁,希望能帮助大家,(内置jqgrid,combobox-ajax等控件使用,很全面),希望能帮到大家,有疑惑的地方请留意,大家一起探讨

    javascript中关于类型判断的一些疑惑小结

    主要给大家介绍了关于javascript中关于类型判断的一些疑惑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    让我疑惑的html页面源代码

    让我疑惑的html页面源代码~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Javascript lastIndex 正则表达式的一个疑惑

    Javascript lastIndex 正则表达式

    oh-my-js:JavaScript 文档

    JavaScript 参考手册What is this此文档为本人复习 JavaScript 基础知识时所整理,文档内容来自以下网站以及个人的理解:除去学习每个 API 的使用之外,还尽量考虑「不用eval的前提下用JS实现一次JS」。Contributing...

    JS 第16章 匿名函数和闭包

    JS中的匿名函数和闭包,详细解释了大家的疑惑,提升大家对的JS的进一步的理解!

    vue中eslintrc.js配置最详细介绍

    比较详细,看完能对eslint有较为全面的了解,基本解除对该文件的疑惑。 /** * 参考文档 * 【eslint英文文档】https://eslint.org/docs/user-guide/configuring * 【eslint中文文档】...

    Vue开发过程中遇到的疑惑知识点总结

    Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。最近终于有时间空下来,所以想着...

    判断JavaScript中的两个变量是否相等的操作符

    可能有些同学看到这个标题就会产生疑惑,为什么我们要判断JavaScript中的两个变量是否相等,JavaScript不是已经提供了双等号“==”以及三等号“===”给我们使用了吗? 其实,JavaScript虽然给我们提供了相等运算符,...

    vue中使用微信公众号js-sdk踩坑记录

    最近又在vue中捣鼓了下微信公众号api的接入,不得不说这里边水是真的深啊,上次分享了微信授权登录和js-sdk签名的部分,其中很多朋友私信我表示了疑惑,今天我就再次尝试理顺一下这里边的坑吧: 微信JS-SDK是微信...

Global site tag (gtag.js) - Google Analytics