我参考这个答案:https://stackoverflow.com/a/8934895/4275690
Array.min = function( array ){
return Math.min.apply( Math, array );
};
Howcome Math的min方法在.apply()被链接到它之前不需要括号吗?我对该语法的理解是.min没有括号是一个属性。
我的困惑之所以产生,是因为我对链接的大部分经验来自于使用类似于以下代码的jQuery:
jQuery("div").hide("slow", function(){
jQuery(this)
.addClass("done")
.find("span")
.addClass("done")
.end()
.show("slow", function(){
jQuery(this).removeClass("done");
});
});
答案 0 :(得分:2)
.apply
不是链接的电话,它是每个Function
的属性,因为每个函数都继承自Function.prototype
,所以它可用。
即,给定:
var m = Math.min;
然后m.apply
只是访问该函数的.apply
属性。
答案 1 :(得分:-1)
将()
附加到属性名称会获取该属性的值,并尝试将其作为函数调用。
函数是对象,因此可以拥有自己的属性。
apply
是min
(和其他所有)函数的属性(即它不是调用min
的返回值的属性)。
这与方法链接无关,方法链接是方法的返回值是调用方法的对象。