作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
刚读完 Crockford 的“JavaScript: The Good Parts”,我对他对伪古典与原型(prototype)方法的立场有疑问。其实我对他的立场并不感兴趣;我只是想了解他的论点,以便建立自己的立场。
在书中,Crockford 似乎推断构造函数和“所有那些爵士乐”不应该在 JavaScript 中使用,他提到了“new”关键字是如何被糟糕地实现的——即非构造函数可以用“new”调用关键字,反之亦然(可能导致问题)。
我以为我明白他来自哪里,但我想我不明白。
当我需要创建一个新模块时,我通常会这样开始:
function MyModule(something) {
this.something = something || {};
}
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.
最佳答案
见:Is JavaScript's “new” Keyword Considered Harmful?
重要的是要记住,与许多其他 JavaScript 程序员一样,Crockford 最初接触该语言时着眼于“修复”它——使其更像其他(所谓的“经典”)OO 语言。所以编写了大量的结构化代码,构建了库和框架,然后……然后他们开始意识到这并不是真的必要;如果你按照自己的方式处理 JS,你可以相处得很好。
关于javascript - 伪经典与 "The JavaScript way",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/791131/
我是一名优秀的程序员,十分优秀!