fuckUveryMuch.call(fuckObj, args...)
When bark() is invoked with the call() function, billCat takes the place of this within the bark function of Dog, so this.name is a reference to billCat.name instead of fredDog.name.
表示调用这个fuckUveryMuch,fuckObj替代fuckUveryMuch这个函数中所出现的this
In addition to accepting an object as a parameter to replace the called function’s this, it also accepts an arbitrary number of arguments that will be passed into the called function.
<html>
<head>
<script>
function zou() {
// A constructor function for a Dog
var Dog = function(name) {
this.name = name;
};
Dog.prototype.bark = function bark() {
alert(this.name + " barks!");
};
// Fred is a Dog.
// Fred can bark, because all Dogs can bark.
var fredDog = new Dog("Fred");
fredDog.bark(); // => "Fred barks!"
// A constructor function for a Cat
var Cat = function(name) {
this.name = name;
};
// Bill is a Cat
var billCat = new Cat("Bill");
// Normally, Cats cannot bark,
// but Bill is an exception and has learned how to bark like Fred
fredDog.bark.call(billCat); // => "Bill barks!"
}
</script>
<title>test</title>
<body>
<a href="javascript:zou()">Let's go!</a>
</body>
</html>
When bark() is invoked with the call() function, billCat takes the place of this within the bark function of Dog, so this.name is a reference to billCat.name instead of fredDog.name.
原文:http://ericterpstra.com/2012/08/a-simple-example-of-the-javascript-call-function/