Im Folgenden sind die Möglichkeiten, Objekte in Javascript zu erstellen, die ich bisher verwendet habe
Beispiel 1:
obj = new Object();
obj.name = 'test';
obj.sayHello = function() {
console.log('Hello '+ this.name);
}
Beispiel 2:
obj = {};
obj.name = 'test';
obj.sayHello = function() {
console.log('Hello '+ this.name);
}
obj.sayHello();
Beispiel 3:
var obj = function(nameParam) {
this.name = nameParam;
}
obj.prototype.sayHello = function() {
console.log('Hello '+ this.name);
}
Beispiel 4: Tatsächliche Vorteile von Object.create(). siehe [dieser Link]
var Obj = {
init: function(nameParam) {
this.name = nameParam;
},
sayHello: function() {
console.log('Hello '+ this.name);
}
};
var usrObj = Object.create(Obj); // <== one level of inheritance
usrObj.init('Bob');
usrObj.sayHello();
Beispiel 5 (angepasstes Crockford's Object.create):
Object.build = function(o) {
var initArgs = Array.prototype.slice.call(arguments,1)
function F() {
if((typeof o.init === 'function') && initArgs.length) {
o.init.apply(this,initArgs)
}
}
F.prototype = o
return new F()
}
MY_GLOBAL = {i: 1, nextId: function(){return this.i++}} // For example
var userB = {
init: function(nameParam) {
this.id = MY_GLOBAL.nextId();
this.name = nameParam;
},
sayHello: function() {
console.log('Hello '+ this.name);
}
};
var bob = Object.build(userB, 'Bob'); // Different from your code
bob.sayHello();
Antwort mit ES6/ES2015 auf dem neuesten Stand halten
Eine Klasse wird wie folgt definiert:
class Person {
constructor(strName, numAge) {
this.name = strName;
this.age = numAge;
}
toString() {
return '((Class::Person) named ' + this.name + ' & of age ' + this.age + ')';
}
}
let objPerson = new Person("Bob",33);
console.log(objPerson.toString());
1 Stimmen
Hinweis: Dies ist ein Duplikat von stackoverflow.com/questions/355848
3 Stimmen
Ich persönlich mag es, Klassenmitglieder innerhalb des Funktionskörpers zu deklarieren. Ich verwende die Technik des "Fixierens des This", um einen Abschluss zu erstellen, der sich mehr wie eine Klasse verhält. Ich habe ein ausführliches Beispiel in meinem Blog: ncombo.wordpress.com/2012/12/30/
1 Stimmen
Ich habe die meisten C++ OOP-Funktionen mit einer einfachen und natürlichen Syntax auf JavaScript portiert. Siehe meine Antwort hier: stackoverflow.com/a/18239463/1115652
0 Stimmen
In JavaScript gibt es keine Klassen. Aber wenn Sie ein klassenähnliches Verhalten in JS simulieren wollen, können Sie das. Siehe Details in: symfony-world.blogspot.com/2013/10/
1 Stimmen
Mögliches Duplikat von Wie kann ich "Klassen" in JavaScript nachbilden? (mit oder ohne eine Bibliothek eines Drittanbieters)
0 Stimmen
Ein einfacher Ansatz zur Definition einer Javascript-Klasse mit Javascript-Objekten: wapgee.com/story/i/203
0 Stimmen
Beachten Sie, dass diese Frage seit 2015 direkt mit den nativen Klassenfunktionen behandelt wird. Siehe developer.mozilla.org/de-US/docs/Web/JavaScript/Reference/
0 Stimmen
@karim Der Link zu dem Artikel, den Sie in Ihrer Frage erwähnen, ist defekt.