gpt4 book ai didi

javascript - 伪经典与 "The JavaScript way"

转载 作者:行者123 更新时间:2023-12-03 13:33:59 25 4
gpt4 key购买 nike

刚读完 Crockford 的“JavaScript: The Good Parts”,我对他对伪古典与原型(prototype)方法的立场有疑问。其实我对他的立场并不感兴趣;我只是想了解他的论点,以便建立自己的立场。

在书中,Crockford 似乎推断构造函数和“所有那些爵士乐”不应该在 JavaScript 中使用,他提到了“new”关键字是如何被糟糕地实现的——即非构造函数可以用“new”调用关键字,反之亦然(可能导致问题)。

我以为我明白他来自哪里,但我想我不明白。

当我需要创建一个新模块时,我通常会这样开始:

function MyModule(something) {
this.something = something || {};
}

然后我会在它的原型(prototype)中添加一些方法:
MyModule.prototype = {
setSomething : function(){},
getSomething : function(){},
doSomething : function(){}
}

我喜欢这个模型;这意味着我可以在需要时创建一个新实例,并且它有自己的属性和方法:
var foo = new MyModule({option1: 'bar'});
// Foo is an object; I can do anything to it; all methods of the "class"
// are available to this instance.

我的问题是 : 如何使用更适合 JavaScript 的方法实现上述目标?换句话说,如果“JavaScript”是一个人,她会建议什么?

另外:当 Crockford 说一种特定的设计模式比另一种“更具表现力”时,他是什么意思?

最佳答案

见:Is JavaScript's “new” Keyword Considered Harmful?
重要的是要记住,与许多其他 JavaScript 程序员一样,Crockford 最初接触该语言时着眼于“修复”它——使其更像其他(所谓的“经典”)OO 语言。所以编写了大量的结构化代码,构建了库和框架,然后……然后他们开始意识到这并不是真的必要;如果你按照自己的方式处理 JS,你可以相处得很好。

关于javascript - 伪经典与 "The JavaScript way",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/791131/

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