用JavaScript封装bind函数
phpcn_u699
phpcn_u699 2017-03-06 13:16:07
0
2
841
function bind(fn, obj) {  
  return function() {    
    return fn.apply(obj, arguments);    }}

我的问题是:

1.能不能写成像下面这样

function bind(fn, obj) {  
  return fn.apply(obj, arguments);}

2.如果不能,是为什么,这样写的话与第一段代码有什么区别,会造成什么问题

3.能不能写个栗子举例一下


phpcn_u699
phpcn_u699

全員に返信(2)
数据分析师

JavaScript を使用してバインド関数をカプセル化する - PHP 中国語 Web サイト Q&A - JavaScript を使用してバインド関数をカプセル化する - PHP 中国語 Web サイト Q&A

周りを見て学んでください。

いいねを押す +0
巴扎黑

1.不能

2.因为你这个样子,就等于直接执行了fn,而不是生成一个可执行的函数。

3.栗子:

错误栗子:

function bind(fn, obj) {  
 return fn.apply(obj, arguments);}function func(){  
 console.log(this.a);}// 期望结果是 bind(func, { a:1 })() 输出1bind(func, { a:1 }); // 直接输出1

新鲜可食的栗子:

Function.prototype.bind = Function.prototype.bind || function bind(context, ...args){  
 let fn = this;  
 return function(...newArgs){      fn.apply(context, [].concat(args, newArgs));   }}


いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!