草庐IT

REFLECTION

全部标签

ruby - 检查变量是否定义?

如何检查Ruby中是否定义了变量?是否有可用的isset类型的方法? 最佳答案 使用defined?关键字(documentation)。它将返回一个包含项目种类的字符串,如果不存在则返回nil。>>a=1=>1>>defined?a=>"local-variable">>defined?b=>nil>>defined?nil=>"nil">>defined?String=>"constant">>defined?1=>"expression"正如skalee评论的那样:“值得注意的是,设置为nil的变量已被初始化。”>>n=nil

javascript - 如何将字符串转换为 JavaScript 中的函数引用?

我想要的是将一个函数的名称作为一个字符串传递,就像我传递一个对该函数的引用一样。例如,我想做这个:vartest=function(fn){fn();}test(alert);等于:vartest=function(function_as_string){//...codethatconvertsfunction_as_stringtofunctionreferencefnfn();}test('alert');我该怎么做? 最佳答案 您从窗口对象中获取函数引用:varfn=window[function_as_string];演示

javascript - Json 使用 jquery 与查询字符串相互转换?

我有一个像a=6&id=99这样的字符串(我可能将它存储在html中作为'a=6&id=99'但是那不是js会看到的)。我想将该字符串转换为一个对象,以便我可以执行func(o.a);或者o.id=44;我该怎么做?第2部分:如何将该对象转换回查询字符串?这可能是我可以编写的微不足道的代码。 最佳答案 您可以使用jQuery.param. 关于javascript-Json使用jquery与查询字符串相互转换?,我们在StackOverflow上找到一个类似的问题:

javascript - 如何在javascript中获取对象的第一个成员

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Accessthefirstpropertyofanobject我有一个像这样的javascript对象:varlist={item1:"a",item2:"b",item3:"c",item4:"d"};在JS中使用反射,我可以说list["item1"]以编程方式获取或设置每个成员,但我不想依赖成员的名称(对象可能会扩展)。所以我想得到这个对象的第一个成员。如果我编写以下代码,它会返回未定义的。任何人都知道如何做到这一点?varfirst=list[0];//thisreturnsundefined

c# - 如何在 C# 中动态引用递增的属性?

我有名为reel1、reel2、reel3和reel4的属性。我如何通过将整数(1-4)传递给我的方法来动态引用这些属性?具体来说,我正在寻找如何在不知道对象名称的情况下获取对象引用。在Javascript中,我会这样做:temp=eval("reel"+tempInt);temp将等于对象reel1。似乎无法在C#中理解这个简单的概念。 最佳答案 这是C#中通常避免的事情。通常还有其他更好的选择。也就是说,您可以像这样使用反射来获取属性的值:objecttemp=this.GetType().GetProperty("reel"+

javascript - 如何列出 Node js 脚本中的所有函数?

我试过查看global,但它只包含变量,不包含函数。如何列出我的脚本中创建的所有函数? 最佳答案 使用您要查看的文件从命令行运行Node调试。然后你可以使用列表(这里有一些大数字)nodedebugmini_file_server.jsscripts26:mini_file_server.jsdebug>list(1000)1varhttp=require('http'),2util=require('util'),3fs=require('fs');45server=http.createServer(function(req,r

javascript - JavaScript 中的反射

我一直在研究JavaScript中反射的可能性。我已经有了一个简单的反射器,它可以列出对象/函数的成员,如下所示:window["Foo"]={"Bar":{"Test":function(){this.x=32;this._hello="HelloWorld";this._item=123.345;this.hello=function(){alert("hello");};this.goodbye=function(){alert("goodbye");}}}}$(document).ready(function(){varx=newFoo.Bar.Test();Reflect(n

javascript - 列出对象的内置属性

有没有办法让我循环遍历Javascript对象的内置属性?for...in让我接近我想去的地方,但是“for...in循环不会遍历内置属性。” 最佳答案 我意识到这个问题已经有三年了,但是现在,有了ES5,有可能:>>>Object.getOwnPropertyNames(Object)[“原型(prototype)”、“getPrototypeOf”、“getOwnPropertyDescriptor”、“键”、“defineProperty”、“defineProperties”、“创建”、“getOwnPropertyName

javascript - 获取变量名。 javascript "reflection"

有没有办法获取变量name,就像您在.Net中通过反射所做的那样?就像在这种情况下:function(x,y,z){if(x===0)logger.log('variable'+x.reflectedName'hasinvalidvalue'+x)//logs:'variablexhasinvalidvalue0)...}我发现了类似的问题,想要函数之外的var名称(?!),但找不到这个问题。(jQuery是一个选项,虽然我不知道如何用它来完成......) 最佳答案 实际上你可以。这是一个片段:functiongetVarName

javascript - 如何以编程方式检查 JavaScript 作用域链?

在JavaScript调试器中,我可以手动检查scopechain的一个功能。例如,在这段代码上执行foo()时:varx1="global";varfoo=(functionmain(){varx2="insideobj";returnfunctioninternalFoo(){varx3="insideinternalFoo";console.log(x1+','+x2+','+x3);//getthescopes};})();foo();并在console.log上设置断点,我看到以下范围:有什么方法可以以编程方式做到这一点吗?我如何检查在每个范围级别定义的内容?