2016-04-06 13 views
1

ich bezwecken mit Variablen und Funktionen ... und Definition neuer „function2“ersetzen alte Funktion mit neuen mit Argumenten

var object = { 
    x: 11, 
    y: 22, 
    getX: function() { 
     return this.x; 
    } 
}; 

var function2 = function(value) { 
    return value;  
}; 

Ich möchte Definition von alten getX Funktion ersetzen:

object.getX = function2(arg); 

aber dieser Code ersetzt nicht die Funktion, aber das Setzen eines neuen Wertes

wie man es macht?

Ich möchte Wert "15", wenn ich rufe object.getX (15) .... Wert "aa", wenn ich object.getX nennen ("aa")

Antwort

2

Sie haben bind(context,arguments..) für diesen Zweck zu verwenden,

,
object.getX = function2.bind(object, arg); 

Und wenn Sie wollen einfach nur die function ersetzen, ohne dass Kontext (this) Einstellung

Dann können Sie es tun, einfach durch.

object.getX = function2; 

Ihre vollständige Code wäre,

var object = { 
    x: 11, 
    y: 22, 
    getX: function() { 
     return this.x; 
    } 
}; 

var function2 = function(value) { return value; }; 
object.getX = function2.bind(object); 

console.log(object.getX("aa")); //"aa" 
1

Sie können einfach tun wie

object.getX = function2; 
Verwandte Themen