<! DocType html> <html> <head> <meta charset = "utf-8"> <style> button {background-color:#0f0;} </style> </head> <body> <button id = "button"> button {alert (this.id); // Pop-up-Schaltfläche}; // Dies im Kontext kann als Schaltfläche </script> </body> </html> angesehen werdenBinden Sie Bind
Die Codekopie lautet wie folgt:
var text = document.getElementById ("text");
var button = document.getElementById ("button");
button.onclick = function () {
alarm (this.id); // Popup-Taste
} .bind (Text);
// Dies im Kontext kann als Schaltfläche gesehen werden
Zu diesem Zeitpunkt werden Sie feststellen, dass sich dies in Text geändert hat
Es ist auch in Funktionsliteralen anwendbar, um die Auf- und Abwärtsrichtung (dies) unverändert zu halten.
var obj = {color: "#ccc", element: document.getElementById ('text'), Ereignisse: function () {document.getElementById ("button"). {this.events ();}}; obj.init ();Zu diesem Zeitpunkt ändert das Klicken auf den Schaltflächentext die Farbe. Es ist ersichtlich, dass dies kein Knopf, sondern ein OBJ ist.
Die Methode von Bind () ist in IE 6, 7, 8 nicht anwendbar. Es ist erforderlich, diese Methode durch Erweiterung des Funktionsprototyps zu erweitern.
if (! function.prototype.bind) {function.prototype.bind = function (obj) {var Slice = [] .Slice, args = Slice.call (Argumente, 1), self = this, nop = function () {}, bound = function () {return self.apply (this Instance von nop? tht oderZu diesem Zeitpunkt können Sie sehen, dass Bind () auch in IE6, 7 und 8 unterstützt wird.
Die Codekopie lautet wie folgt:
Slice = Array.Prototype.slice,
oder
array = array.prototype.slice.call (Array, 0);
Konvertieren Sie ein Array wie ein Array