根据this article它应该是一个JavaScript 2.0定义类的方式。但是,我从来没有在实践中看到过。因此,这个问题。如何使用class关键字和Javascript 1.x的做事方式有什么区别?Javascript中的类关键字
回答
你从来没有见过在实践中使用的class
关键字的原因是all the current implementations of JavaScript are 1.x.
JavaScript 2.0 was merged into ECMAScript 4 which was rather unpopular等从未进入现实世界。
因此要回答你的问题,你如何使用关键字class
?你不能。
感谢您的评论。 虽然有趣的事情。编写JavaScript文件时,Visual Studio 2008将其识别为有效的关键字。 – 2009-11-13 13:16:37
@Validimir - VS2008可能会识别class关键字,因为您可以在JScript.NET中使用它。 – 2009-11-13 13:21:49
类(以及许多其他java关键字)是一个保留字,因此理论上语言可以在不破坏现有程序的情况下添加支持。在https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Reserved_Words上有完整列表。 – 2009-11-13 16:28:56
你从来没有在实践中看到它,因为事实上没有任何东西支持JavaScript 2.0。该草案来源于除草案之外的任何其他规范。
你仍然可以在JS中使用原型构建类!
var foo = function() {
this.hurrah = "yay!";
return this;
}
foo.prototype.doit() {
alert(this.hurrah);
}
是的。我知道。 – 2012-02-16 15:03:50
-1甚至不能远程解决问题。 – Ben 2013-04-23 04:02:30
如果您在一个Java或C#的背景,这里是如何在JavaScript
var MyClass = function (f, l){//constructor
//private members
var firstName = f,
lastName = l,
fullName = function() { //fullName is a private function
return firstName + " " + lastName;
};
return {
//public members
getFullName: fullName
};
}
var output = document.getElementById('Output'); //<div id="Output"></div>
var myName = new MyClass("First", "Last");
output.innerHTML = myName.getFullName();
你有什么不是一个相当类,它只是一个对象。为了把它称为一个类,你必须有一个不返回任何东西的构造函数,以及将东西附加到它的原型的能力,还应该有一种方法来继承该类。没有办法正确地从这个对象继承,因为它没有原型链。请注意,这种方法不是内存友好的,因为它将方法存储在闭包中,而不是在原型上,它隐藏了标准JS原型类系统不支持的私有成员。 – 2013-01-30 20:03:37
定义一个类我想补充类制作的ECMA5方式。
需要注意的是它不具有一个构造函数这样(但如果你喜欢,你可以触发一个初始化函数)
var Class = {
el: null,
socket: null,
init: function (params) {
if (!(this.el instanceof HTMLElement)) {
throw new Error('Chat room has no DOM element to attach on.');
}
return this.doStuff();
},
doStuff: function (params) {
return this;
}
};
var instanceofClass = Object.create(Class, {
el: {
value: document.body.querySelector('.what ever')
},
someMoreData: {
value: [0,5,7,3]
}
}).init();
*编辑移动描述出来的代码块的
我知道这是一个旧的帖子,但截至今天,即随着ECMAScript 6的到来,我们可以声明JavaScript类。
的语法去如下:
class Person{
constructor(name){
this.name = name;
}
printName(){
console.log('Name is '+this.name);
}
}
var john = new Person('John Doe');
john.printName(); // This prints 'Name is John Doe'
的完整指南。这可以在this post
- 1. 哈希键中的JavaScript关键字
- 2. 关于JavaScript中的'this'关键字
- 3. 的Javascript“参数”关键字
- 4. 类型关键字
- 5. Java类关键字
- 6. javascript中返回关键字的意义
- 7. JavaScript中的`name`关键字是什么?
- 8. 是javascript中的关键字不好吗?
- 9. 别名javascript关键字
- 10. JavaScript比较“if”关键字
- 11. Javascript关键字THIS和ELEMENT
- 12. 类声明中的关键字const
- 13. 了解haskell中的类型关键字
- 14. 在javascript中使用“that”关键字
- 15. 在JavaScript中使用“this”关键字
- 16. JavaScript中是否有空关键字?
- 17. 在JavaScript中this关键字问题
- 18. PHP - 使用关键字以外的类和使用关键字里面的类
- 19. 如何“跳过”JavaScript类关键字以指定CSS类值
- 20. Objective-c - 类关键字
- 21. THIS关键字内类
- 22. Javascript中的关键事件
- 23. javascript中的关键schortcut?
- 24. 是javascript的`return`真的是*关键字*?
- 25. 在Javascript中使用特殊键的关键字
- 26. JavaScript`var`关键字的混淆操作
- 27. JavaScript的window.onerror和这个关键字
- 28. Javascript新的关键字使用
- 29. 使用数组作为javascript中的字典的关键字
- 30. 关于Thread类的setName()方法中的final关键字
的文章中找到给出了在大红色的字母一个体面的解释 – 2009-11-13 12:43:34
词语“1999年2月草案”页面顶部应该是这篇文章可能与现实世界没有多大关系的线索;-) – NickFitz 2009-11-13 13:02:33
您的意思很像HTML 5草案,现在实际上是一个规范? ;) – 2009-11-13 13:17:40