1.this.method.apply(this,arguments) 这样的用法是什么意思? apply 的第二个参数是 array like object,可以用来传递不确定个数的参数。用 thi
1.this.method.apply(this,arguments) 这样的用法是什么意思?
apply 的第二个参数是 array like object,可以用来传递不确定个数的参数。用 this.method 做不到。单纯的 this.method(arguments) 原本也想是this.method(1,2,3),但对 this.method([1,2,3]) 这样的形式无能为力。所以,用上 apply 它允许所接收的参数以一组的形式。
this.method.apply( this, arguments) 是将method 的上下文从 this(还是)换成了 this,它们指向不变,所以相当于没换上下文(但这么做是最保险的,比如改成 null 那上下文被替换成了不明确的了)。
2.《JavaScript语言精粹》“作用域的好处是内部函数可以访问定义它们的外部函数的参数和变量(除了this和arguments)”
每个函数在调用时,其活动对象都会自动获取两个特殊的变量:this和arguments。内部函数在搜索这两个变量时,只会搜到其活动对象为止,因此永 远不肯能访问到外部函数中的这两个变量。不过,把外部作用域中的this对象保存在一个闭包能够访问的变量里,就可以放闭包访问该对象了。
3.差异化继承:
通过定制一个新的对象,指明它与所基于的基本对象的区别。
https://developer.mozilla.org/en-US/docs/Differential_inheritance_in_JavaScript