gpt4 book ai didi

javascript - 解释 John Resig 的一些忍者代码

转载 作者:可可西里 更新时间:2023-11-01 02:54:55 25 4
gpt4 key购买 nike

Function.prototype.bind = function(){
var fn = this, args = Array.prototype.slice.call(arguments),
object = args.shift();
return function(){
return fn.apply(object,
args.concat(Array.prototype.slice.call(arguments)));
};
};


var myObject = {};
function myFunction(){
return this == myObject;
}
assert( !myFunction(), "Context is not set yet" );
var aFunction = myFunction.bind(myObject)
assert( aFunction(), "Context is set properly" );

下面对 Jeffery 代码的微小修改帮助我理解了内部匿名函数中使用的参数。我只是更改了下面的 3 行

var introduce = function(greeting) { alert(greeting + ", my name is " + this.name + " ,home no is " + arguments[1]); }

hiBob(" 456"); // alerts "Hi, my name is Bob"
yoJoe(" 876");

谢谢大家

最佳答案

arguments object 是一个类似数组的对象,它只有 length 属性。

通过 Array.prototype 调用切片函数是将其转换为数组的常用技术,因此您将能够使用像 shift 这样的数组函数。和 concat在这个例子中,直接。

关于javascript - 解释 John Resig 的一些忍者代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1507085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com