我已经了解了 JavaScript 的绑定(bind)方法,但我不确定应该在哪种情况下使用它。下面从一副纸牌(数组)中获取随机纸牌的示例是否被认为是该方法的适当使用:
function getRandomElementFromArray () {
return this.splice( Math.floor( Math.random() * this.length ) )[0];
}
var deckOfCards = // Array of 52 cards;
var getRandomCard = getRandomElementFromArray.bind(deckOfCards);
最佳答案
我不会说这是一个合适的用途 - 牌组应该简单地作为参数传递。
.bind
最常见的用途是专门附加给定的 this
当它不可能通过其他方式传递时/或创建一个函数的版本,其中初始参数是固定的,然后添加传递的额外参数,例如
对于前者:
function MyObject() {
this.callback = function() { ... }
}
var myobj = new MyObject();
el.addEventListener("click", myobj.callback.bind(myobj));
[如果没有 .bind
调用,回调将无法正确引用 this
]
对于后者:
function add(a, b) { return a + b }
var add2 = add.bind(null, 2); // no "this" needed in this case
add2(3); // returns 5
关于javascript - 适当使用Javascript的bind(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34442544/