In Ruby kann ich ein Modul auf einem Objekt zur Laufzeit erweitern. Ich denke JavaScript kann die Funktion bekommen, aber ich kann es nicht zum Laufen bringen.So implementieren Sie Rubys Erweiterungsmodul in JavaScript
Ruby-OK läuft, hat das Objekt test1
und test2
Methoden:
class Test
def test1
puts "test1"
end
end
module Other
def test2
puts "test2"
end
end
test = Test.new
test.extend(Other)
test.test1
test.test2
JavaScript ein Typeerror zurückgibt: test_new.test2 ist keine Funktion
class Test {
test1(){
console.log("test1")
}
}
class Other {
test2() {
console.log("test2")
}
}
console.log(Object.getOwnPropertyNames(Test.prototype))
console.log(Object.getOwnPropertyNames(Other.prototype))
var test = new Test
var test_new = Object.assign(test, Other.prototype)
test_new.test1()
test_new.test2()
Wer weiß, wie ich es bekommen kann ?
Mögliche Duplikat von [Klonen nicht aufzählbare Eigenschaften in JavaScript] (https://StackOverflow.com/q/38316864/218196). –
@FelixKling, ja, ich finde es scheint Ursache "Eigenschaften auf der Prototyp-Kette und nicht aufzählbar Eigenschaften können nicht kopiert werden", danke. – Tsao
Mögliches Duplikat von [Klonen nicht aufzählbare Eigenschaften in Javascript] (https://stackoverflow.com/questions/38316864/cloning-non-enumerable-properties-in-javascript) – Tsao