今天敲代码的时候,想了想bind函数
Function.prototype.bind = Function.prototype.bind || function (target) { var self = this; return function (args) { if (!(args instanceof Array)) { args = [args]; } self.apply(target, args); }; };
/*example 1*/ function f1(y, z){ return this.x + y + z;} //调用 1 var g1 = f1.bind({x:1}, 2); //this.x = 1; y = 2; console.loog( g1(3) ); //this.x + y + 3 = 6; //调用 2 var g2 = f1.bind({x:1}); //this.x = 1; console.log( g2(2,3) ); //this.x + 2 + 3 = 6 /*example 2*/ var f2(x, y){ return x + y; } //调用 var g3 = f2.bind(null, 1); //x = 1 console.log( g3(2) ); //x + 2 = 3
var eleBtn = document.getElementById("button") , eleText = document.getElementById("text"); eleBtn.onclick = function(color) { color = color || "#003399"; this.style.color = color; //此时的this指向eleText }.bind(eleText, "#cd0000");
时间: 2024-10-12 13:45:50