Tag: 范围

if / else语句中的函数声明?

函数声明是如何处理的? var abc = ''; if(1 === 0){ function a(){ abc = 7; } }else if('a' === 'a'){ function a(){ abc = 19; } }else if('foo' === 'bar'){ function a(){ abc = 'foo'; } } a(); document.write(abc); //writes "foo" even though 'foo' !== 'bar' 这个例子在Chrome和Firefox中产生不同的输出。 Chrome在FF输出19输出foo 。

JavaScript中的属性和方法名称的下划线前缀

在JavaScript中的下划线前缀只是一个约定,就像例如在Python私有类方法是? 从2.7 Python文档: Python中不存在“私有”实例variables,除了在对象中不能访问的variables。 但是,大多数Python代码都有一个约定:以下划线(例如_spam)作为前缀的名称应被视为API的非公开部分(无论是函数,方法还是数据成员) 。 这是否也适用于JavaScript? 以这个JavaScript代码为例: function AltTabPopup() { this._init(); } AltTabPopup.prototype = { _init : function() { … } } 而且,使用下划线前缀variables。 … this._currentApp = 0; this._currentWindow = -1; this._thumbnailTimeoutId = 0; this._motionTimeoutId = 0; … 只有约定? 还是有更多的下划线前缀? 我承认我的问题与这个问题非常相似,但是它并没有使JavaScript中的下划线前缀的含义变得更加明智。

如何在JavaScript中dynamic访问本地作用域?

如果要dynamic使用全局函数和variables,可以使用: window[functionName](window[varName]); 是否有可能做同样的事情在本地范围内的variables? 此代码正常工作,但目前使用eval,我试图想如何做到这一点。 var test = function(){ //this = window var a, b, c; //private variables var prop = function(name, def){ //this = window eval(name+ ' = ' + (def.toSource() || undefined) + ';'); return function(value){ //this = test object if ( !value) { return eval('(' + name + ')'); } eval(name + ' […]

在Python中已经定义的variables之后如何更改variables

我想添加或减去一个定义的variables,但我不知道如何覆盖旧的值与新的。 a = 15 def test(): a = a +10 print ( a ) test() 错误信息: Traceback (most recent call last): File "test.py", line 7, in <module> test() File "test.py", line 4, in test a = a +10 UnboundLocalError: local variable 'a' referenced before assignment

为什么在Python 3中“1000000000000000(1000000000000001)”这么快?

我的理解是, range()函数实际上是Python 3中的一个对象types ,它在运行中生成其内容,类似于生成器。 在这种情况下,我预料到下面这一行需要花费过多的时间,因为为了确定是否在这个范围内,需要生成四十亿个值: 1000000000000000 in range(1000000000000001) 此外:似乎不pipe我添加了多less零,计算或多或less需要相同的时间量(基本上是瞬时的)。 我也尝试过这样的事情,但计算仍然几乎是即时的: 1000000000000000000000 in range(0,1000000000000000000001,10) # count by tens 如果我试图实现我自己的范围function,结果是不是很好! def my_crappy_range(N): i = 0 while i < N: yield i i += 1 return range()对象在引擎盖下做什么使它如此之快? 编辑:这已经certificate是一个比我预期的更细致的话题 – 似乎有一段历史背后的优化range() 。 Martijn Pieters的答案是为了它的完整性而被选中的,但是也可以看一下abarnert的第一个答案 ,那就是在Python 3中对range是一个完整序列意味着什么,以及关于__contains__函数优化的潜在不一致性的一些信息/警告Python实现。 abarnert的其他答案更详细一些,并为那些对Python 3优化背后的历史感兴趣的人提供链接(并且缺乏Python 2中的xrange优化)。 由poke和wim提供的答案为有兴趣的人提供了相关的C源代码和解释。

是否有可能在for循环中声明两个不同types的variables?

有可能在C ++的for循环的初始化主体中声明不同types的两个variables? 例如: for(int i=0,j=0 … 定义了两个整数。 我可以在初始化主体中定义一个int和一个char ? 这将如何完成?

引用variables和表单中其他位置的对象

我试图将一个设备对象传递给一个表单对象,然后在窗体上的一个button的单击事件中使用该设备对象。 但是我不知道如何正确引用button事件中的设备对象。 我使用以下方法设置新的表单实例: Public Sub New(ByRef thisEquip As classEquipment) Me.InitializeComponent() Me.Text = thisEquip.equipName & " Tests" End Sub 并设置像这样的button点击事件: Private Sub btnUpdateAndClose_Click(sender As Object, e As EventArgs) Handles btnUpdateAndClose.Click Call updateTestList(thisEquip) End Sub 但“thisEquip”对象不被识别。 我认为这是因为发件人是button,而不是forms本身。 但是,我不知道如何从表单中引用设备对象。

在构造函数里面分配原型方法*为什么不呢?

在风格上,我更喜欢这种结构: var Filter = function( category, value ){ this.category = category; this.value = value; // product is a JSON object Filter.prototype.checkProduct = function( product ){ // run some checks return is_match; } }; 对于这个结构: var Filter = function( category, value ){ this.category = category; this.value = value; };// var Filter = function(){…} Filter.prototype.checkProduct = function( […]

为什么范围工作,但不是单元格?

我试图将一个工作簿中的数据从一个范围分配到另一个范围。 当我使用正常的Range语法来指定目标范围(范围(“A1:B2”))我的代码工作,但如果我尝试使用范围,单元格语法(范围(单元格(1,1),单元格,2)))我的代码不起作用。 我激活目标工作簿(ActiveWorkbook),并在源工作簿(ThisWorkbook)中运行代码。 此代码工作: ActiveWorkbook.Worksheets(1).Range("A1:B2").Value _ = ThisWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value 但是这个代码没有: ActiveWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value _ = ThisWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value 我得到的错误是运行时错误“1004”:应用程序定义或对象定义的错误。 有谁知道为什么使用单元格对象造成我的问题,或者如果有一些其他问题,我不知道?

给我的function访问外部variables

我在外面有一个数组: $myArr = array(); 我想给我的函数访问外面的数组,所以它可以给它添加值 function someFuntion(){ $myVal = //some processing here to determine value of $myVal $myArr[] = $myVal; } 我该如何给函数正确的范围variables?