gpt4 book ai didi

javascript - 为什么 Javascript 有特权函数

转载 作者:可可西里 更新时间:2023-11-01 02:52:06 25 4
gpt4 key购买 nike

在工作中讨论之后,我仍然没有对以下问题给出满意的答案,在我们所说的特权函数中没有其他编程语言。

var kid = function(name)
{
// Private
var idol = "Paris Hilton";

// Privileged
this.get_idol = function()
{
return idol;
};
}

我能想到的唯一逻辑是,如果您让一个公共(public)函数返回一个私有(private)变量,那么该函数是“特权”执行此操作的(因为您不能直接调用它)。

我们可以在 php 中做同样的事情,但我们不使用这个奇特的名称,我也想不起使用这个术语的任何其他语言。

您甚至可能会想到,如果您需要一个“特权”函数,您的整个方法都是错误的,因为如果您需要从外部访问它,为什么不直接将其公开。

另一方面,私有(private)变量不能从外部更改,因此它会受到保护。但对外显示。

最后,作为普通 javascript 的新手,这个术语有点令人困惑,恕我直言,只是一个奇特的名字让它更加困惑,因为在 php 中它也会变得像 javascript :

class kid
{
// Private
private idol = "Paris Hilton";

// PUBLIC OR PRIVILEGED ?
public function get_idol()
{
echo $this->idol;
}
}

它的作用相同,但只是一个公共(public)方法。

最佳答案

Javascript 没有特权或任何功能。它的所有函数都是闭包,这就是在那里使用的,C# 和大多数函数式语言也有。

ECMA norm因为如果你需要的话,语言是可用的,特权这个词不会出现在它里面一次。

这个词好像来自http://www.crockford.com/javascript/private.html但这只是将闭包概念简化为针对特定情况的闭包用法,我猜是针对 OOP 程序员类型。

Javascript 在设计方面可能比大多数 OOP 语言更强大,但您需要以开放的心态并通过理解功能概念来处理它。试图强制它成为另一种 OOP 语言既是一个坏主意,也是一种耻辱。

关于javascript - 为什么 Javascript 有特权函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5265901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com