问题标签 [self]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3984 浏览

python - 用于函数的 Python 'self'

我已经阅读了关于“自我”的 SO 帖子,并且我已经阅读了关于类的Python 文档。我想我了解selfPython 类中的使用以及其中的约定。

但是,对于 Python 及其习语来说相对较新,我无法理解为什么self在过程类型函数定义中使用一些。例如,在有关整数类型的 Python 文档中,示例函数是:

替换selfnum是相同的功能结果;IE:

没有像__init__etc 这样的习语,我可以在这里看到为什么self在第一种情况下使用。我self在程序函数的其他地方也看到了这种用法,并且发现它令人困惑。

所以我的问题是:如果没有类或方法,为什么self在函数定义中使用而不是描述性参数名称?

0 投票
3 回答
377 浏览

iphone - 在对象的 init 方法中使用 self 关键字分配 ivars

我读过在和对象的“init”方法中使用 self.ivar = (convenience method) 是不好的,因为这会与继承相混淆。

但是,如果您知道您不会对您的对象进行子类化,那么可以使用 self 关键字赋值吗?

我问的原因是这个。我用自己的 init 方法创建了一个新对象,并在该方法中执行各种初始分配。由于我不使用 self 关键字,我将它们直接分配给 iVar,因此使用 alloc 方法而不是便捷方法。IE

或者,如果我使用方便的方法,我会保留它。IE

但是...当我使用内存泄漏工具运行我的程序时,所有这些分配都被识别为内存泄漏。

如果我可以使用 self 关键字加上一个方便的方法而不是 alloc-init,那么这将避免这个问题。

如果我选择使用 alloc-init 方法,我应该在哪里发布 iVar?只是在dealloc?

谢谢你的帮助 :)

迈克尔

0 投票
1 回答
4276 浏览

asp.net - 无法从模态对话框 window.showModalDialog 下载

如果使用 window.showModalDialog() 在模式弹出窗口中打开 aspx 页面,我无法从 aspx 页面下载文件。

我在 aspx 页面上有一个图像按钮,单击它时,使用一些业务逻辑生成了一个 Excel 文件,然后我将其添加到响应标头以使该文件可供下载。代码如下图所示,

当我将这个 aspx 页面作为模式弹出窗口打开时,它不会显示浏览器的下载窗口。在正常情况下(无模式,使用 window.open 打开)弹出下载工作正常。

我也尝试过使用另一种方法来下载文件。我没有在 中设置响应标头ibtnExport_Click,而是打开了另一个 aspx 页面,例如 Download.aspx,使用window.open并在 Download.aspx 的页面加载事件中设置响应标头。代码如下图所示,

在 Download.aspx 中,

好吧,它在模态和非模态弹出窗口的情况下都有效,并且在您将应用程序部署到 IIS 上之前提供了重生:)。是的,这种方法适用于 ASP.NET 开发服务器,但不适用于 IIS。

有什么想法可以在模态弹出窗口上进行下载吗?

0 投票
3 回答
1608 浏览

objective-c - 何时使用“自我”访问属性

我已在本网站上阅读了有关此问题的许多问题,我了解以下内容:

self.property 访问手动或@synthesize 创建的getter/setter 方法。根据是否将属性声明为保留、复制等,保留计数被正确修改,例如保留属性,释放先前的值,并使用“保留”将新值分配给新值,并将保留计数增加 1。

属性通常使用同名的实例变量来声明(如果您手动进行分配,可能会有所不同)。这一般是因为@synthesize 生成的访问器使用实例变量来引用内存中的对象,然后执行相关命令。

我的问题是基于这样一个事实,即在许多示例中, self.property 和 property 可互换用于不同的事物,并且我在确定规则时遇到了麻烦。Apple Docs 中的“食谱”示例应用程序中的一个示例具有以下内容:

和...

这些属性中的每一个都具有关联的同名私有实例变量。所有都以相同的方式声明为“非原子,保留”属性。每个都在 dealloc 中释放...

然而,“成分”是通过 self 访问的,而“prepTimeTextField”是直接访问的。

访问方法不同的原因是什么?

如果我正在访问视图的委托怎么办?或者是一个核心数据对象,它作为保留属性由之前的视图控制器传递给视图控制器?

非常感谢

0 投票
2 回答
792 浏览

iphone - 子视图中的 UIButton,在当前 ViewController 中触发动作

我有个问题。我有一个普通的视图控制器,我在滚动视图中添加 UITextViews。我向这些 UITextviews 添加了动态数量的 UIButtons,我想在其中添加一个目标。我将它们添加到 UITextViews 的原因是,将它们添加到 viewcontroller 添加文本视图的原点会使它们最终出现在屏幕之外而不是滚动,当然。但是当我这样做时,按钮会触发动作。

我的问题是:如何将视图控制器指定为目标?使用 self 或使用在 appdelegate 中创建的 var 作为目标不会触发它。如果“从 textview 向上的两个超级别”将起作用,我将使用它,只是不知道如何正确指定它。

我的代码:

0 投票
4 回答
12109 浏览

ruby - 在 Ruby 中,在类方法中,self 是类还是实例?

我知道这self是实例方法中的实例。那么,类是self在类方法中吗?例如,以下内容可以在 Rails 中使用吗?

0 投票
3 回答
2615 浏览

php - PHP:这个和自我

可能重复:
PHP:self 与 this以及 何时在 $this 上使用 self

$this和有什么区别self::

例子:

0 投票
1 回答
1163 浏览

objective-c - Objective-C:改变自我内部的“自我”价值

我在 NSDate 上有一个类别,我想实现一些函数来操作日期,例如:

所以我在 NSDate 中有一个函数,例如:

这在函数内部有效,但在此成员函数外部,日期没有改变。我理解这个故障,因为我被告知 self 只是在成员函数内部创建的局部变量。那么,我怎样才能使这项工作?

当然,我可以写:

但我觉得它在实例类中更有意义,因为我不想更改日期,而只是调整先前创建的日期的一些值。

0 投票
2 回答
1396 浏览

java - Java自检程序(self-checksuming)

我要做一点java自检程序(self-checksum)。这是我的代码示例

我试图做这样的事情

但是我真的不知道如何检查?

编辑:

感谢您的回答

@Adam Paynter 和 SpoonBenders

当然,这不是供我个人使用的。我不会用它来保护任何软件......

这是我必须为我的java课程做的“练习”......

0 投票
3 回答
1070 浏览

java - Java 自检程序(自动校验和)

我必须分析一个小java自检程序这里是示例

但我真的不明白为什么要做一个 mod 16 并把 result = 12 ?