有没有一种方法将方法绑定到Javascript中的对象?

时间:2015-12-24 14:16:53

标签: javascript functional-programming syntactic-sugar

我经常发现自己使用的模式

object.methodname.bind(object,...)

将方法绑定到其拥有对象,以便在需要将函数传递给另一个函数时使用。

Javascript是否有更简洁的方法来执行此操作?

2 个答案:

答案 0 :(得分:2)

在ES5中,你所写的是将对象方法绑定到自身的最简洁方法。

对于新的this-binding syntax

,有一项针对ES2016(néES7)的提案
Promise.resolve(123).then(::console.log);

$(".some-link").on("click", ::view.reset);

一元表单::foofoo.bind(foo)的简写,而二进制表单bar::foofoo.bind(bar)

的简写

虽然ES2016尚未以最终形式存在,但您今天可以通过Babel plugin使用此语法,可以单独使用,也可以作为preset stage 0的一部分使用。

答案 1 :(得分:0)

你应该使用原型:

在某些方面它类似于c ++ / Java /#c

中的类
function Person(name, phone){ //constructor
    this.name = name;
    this.phone = phone;
}
Person.prototype.someMethod = function(){
    return this.name + ' ' + this.phone;
}

并创建Person的实例就像这样:

var john = new Person('John', '123456789');
console.log(john.someMethod());
相关问题