Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
了解THUSELF:哪些OOP语言真正支持真正的自引用关键字而不仅仅是;这";关键词?_Oop_Self Reference - Fatal编程技术网

了解THUSELF:哪些OOP语言真正支持真正的自引用关键字而不仅仅是;这";关键词?

了解THUSELF:哪些OOP语言真正支持真正的自引用关键字而不仅仅是;这";关键词?,oop,self-reference,Oop,Self Reference,正如我在这里读到的,卢阿有一个自我 但它真的是自我吗?从这个意义上说,无论上下文是什么,自我总是指对象本身。似乎是重言式,但不考虑这个关键字,它不是自对象,而是代码执行的对象。 更新:我不仅仅指javascript,而是指所有语言:这存在于js、.NETJava中。。。并且在语义上不是自我的(所以这些语言不是候选语言),应该是不变的(就像在数学意义上),而“this”不是不变的:它可以在相同的执行流中更改 我的问题正是支持真正的“self”关键字和不变性特性——不要回答闭包之类的解决方法:)

正如我在这里读到的,卢阿有一个自我

但它真的是自我吗?从这个意义上说,无论上下文是什么,自我总是指对象本身。似乎是重言式,但不考虑这个关键字,它不是自对象,而是代码执行的对象。


更新:我不仅仅指javascript,而是指所有语言:这存在于js、.NETJava中。。。并且在语义上不是自我的(所以这些语言不是候选语言),应该是不变的(就像在数学意义上),而“this”不是不变的:它可以在相同的执行流中更改

我的问题正是支持真正的“self”关键字和不变性特性——不要回答闭包之类的解决方法:)


“了解自己”不仅对人很重要,对目标也很重要。当对象不能肯定地自引用自身时,如何实现完美的封装?

在Javascript中,this关键字指函数所属的任何对象。然而,问题是这些职能改变了所有权。例如,如果您有:

function Foo(a) {
    this.bar = a;
    this.baz = function() {
        alert(this.bar)
    }
}

var foo = new Foo("foobar");
foo.baz();
// Alerts "foobar"

var baz = foo.baz;
// Copy the method into the window object, changing its ownership

baz();
// Alerts "undefined"

var fixedBaz = baz.bind(foo);
fixedBaz();
// Alerts "foobar"
成员函数在
var baz=foo.baz处更改其所有权
,因此
this
关键字指向
窗口
对象

我认为更好的问题是“如何在维护原始
这个
指针的同时引用对象的成员函数”

编辑:
您可以使用该方法将
指针锁定到某个特定值。

我一直在努力理解您所说的内容。。。我开始认为这是因为你说的是荒谬的

这存在于js、.net java中。。。并且在语义上不是self。它应该是不变的,而“this”不是不变的:它可以在相同的执行流中更改

对。事实上,
将在不同的时间引用不同的对象,并且(例如)当您对其他对象调用方法时,
将引用该其他对象。。。在执行该方法时

这是很好的理解,显然是有用的。。。所以没有必要再深入研究了

那么,如果在不同对象上调用方法时,
这个
没有改变,这意味着什么呢?大概是指原始对象

  • 但是它指的是哪个原始对象?调用方中此
的值是多少?但是那是从哪里来的呢
  • 这样一个
    这个
    的语义模型又有什么用处呢?我正在努力为这样一个
    这个
    想出任何用例,使用
    静态
    变量无法更好地实现它

  • 另一种可能性是,您完全是从Javascript的角度进行讨论,其中
    确实相当复杂。。。假设
    这个
    在典型的OO语言中同样复杂。在代码中,这个< <代码>在java、C++或C++中并不复杂。

    你是指JavaScript中的<代码>这个< /Cord>关键字吗?你的问题有点含糊。你会认为什么是“真正的自我引用关键词”?“……自我总是指对象本身。”我们在这里讨论什么对象?代码就是代码;这里讨论的是一些代码单元(什么类型?)和“对象”之间的什么关系?这个java、javascript和.net如何?我不仅仅指javascript,而是指所有语言:它存在于js、.net java中。。。并且在语义上不是self。它应该是不变的,而“this”不是不变的:它可以在相同的执行流程中更改。如果我问你的问题,我很确定人们会回答close;)确切地说,我想要的是简单的“self”关键字而不是闭包。谢谢你提供的示例。我很难想象一个,因为我在过去得到了一些,但我忘记了。function.bind从来没有听说过似乎是我在寻找的。谢谢!我并不是说这是无用的,我要求的是另一个关键字,这是不一样的。顺便说一句,你在扮演魔鬼代言人66.6 K:)否则为什么js会创建function.bind方法将this指针锁定到某个值。@user310291-基本上是因为Javascript有一个特别复杂的
    this
    模型。。。这是大多数其他OO语言都不共享的。好的,过几天我将学习完Flash后再回到这个主题:)