我经常发现自己使用的模式
object.methodname.bind(object,...)
将方法绑定到其拥有对象,以便在需要将函数传递给另一个函数时使用。
Javascript是否有更简洁的方法来执行此操作?
答案 0 :(得分:2)
在ES5中,你所写的是将对象方法绑定到自身的最简洁方法。
,有一项针对ES2016(néES7)的提案Promise.resolve(123).then(::console.log);
$(".some-link").on("click", ::view.reset);
一元表单::foo
是foo.bind(foo)
的简写,而二进制表单bar::foo
是foo.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());