Hier ist, was mich in JavaScript verwirrt: Im folgenden Code habe ich einen Objektkonstruktor mit einer Eigenschaft. Darunter füge ich einige Prototyp-Methoden hinzu. Die Methode 'method1' kann problemlos auf 'this.property' zugreifen und gibt den Wert 30 zurück. Die Methode 'combine' ruft nur 'method1' auf, gibt aber NaN zurück. Es scheint so, als ob "diese.Property" für den ersten Anruf öffentlich war, aber nicht für den zweiten. Warum dieses seltsame Verhalten?js: Methode kann nicht auf Eigenschaft zugreifen
var ObjBuilder = function()
{
this.property = 3;
};
ObjBuilder.prototype = function()
{
var method1 = function()
{
return this.property * 10;
}
var combine = function()
{
return method1() + 2;
}
return {method1: method1,
combine: combine};
}();
// instantiate an object and call its methods
var obj = new ObjBuilder();
console.log(obj.method1());//prints 30
console.log(obj.combine());//prints NaN. WHY???
Wenn Sie 'this' in' method1' protokollieren, rufen Sie es innerhalb von 'combine' auf. Sie werden das Problem sehen – Li357
@ t.niese [Es scheint nicht so] (https://jsfiddle.net/3ovc6Lye /) - 'Fenster'. Sie müssen es 'this.method1()' nennen, um 'diesen' Kontext zu geben. – Li357