Javascript中这个关键字的一些小知识
隐藏的绑定
起初,这是我感到困惑的事情,当我开始看到它时,我并不理解它,然后,在类似的情况下,同样的方法也可以用来解决同样的问题。
这是一个用Javascript语言设计的错误,但似乎错误是不可避免的,函数是对象,数组是对象,等等。
复制代码代码如下所示:
函数添加(a,b){返回a }
var相加(3,4);
console.log(总和); / /总和= 7
在这一点上,求和的结果是7。
复制代码代码如下所示:
> >类型的添加
> >若干
正如您在这里看到的,添加的类型是值。
在这个模式中调用函数时,这将绑定到全局变量。
也就是说,在目前的环境中,我们可以这样称呼。
复制代码代码如下所示:
This.add(3,4)
这是隐藏的绑定,这是以不同的方式绑定的。
复制代码代码如下所示:
var =函数(){()
回到你好,+ this.name;
};
名称=;
console.log(hello());
然后我们得到你好,这和什么时候
复制代码代码如下所示:
var =函数(){()
回到你好,+ this.name;
};
var用户{ {
你好,你好,
名称:'phodal,
};
console.log(user.hello());
然后在用户点指向hello函数,这是我们理解它是如何可能的,所以它是一个错误。
如果我们在这个方法中定义一个变量并赋给它一个值,那么内部函数可以通过这个变量访问这个函数。
var =
所以当情况稍微复杂一点的时候,我们需要使用它。
复制代码代码如下所示:
增值税=;
提示:
1.本变量的范围是由其最近关闭的功能决定的。
2。使用本地变量(如我自己)允许此绑定在内部可用。
一个简单的例子:
复制代码代码如下所示:
函数(){()
this.name =M;
};
函数(){()
z =新的m();
this.name =毫米;
z.printname =函数(){
console.log(这个名字);
};
返回z.printname();
};
新的毫米;
此时这个点指向m函数,而mm本身。如果我们在m中去掉这个,那么返回是一个未定义的。因此我们创建当前这个范围的别名,比如那个或自己,等等。
复制代码代码如下所示:
函数(){()
z =新的m();
this.name =毫米;
var =;
z.printname =函数(){
console.log(自命名);
};
返回z.printname();
};
这允许你回到毫米。此外,回调函数的绑定的方法可以用在ES5。
复制代码代码如下所示:
函数(){()
z =新的m();
this.name =毫米;
z.printname =函数(){
console.log(这个名字);
}绑定(此);
返回z.printname();
};
绑定可以将方法绑定到收件人。
其他
另一个你好,世界
满足打印(你好)(世界的)在一个偶然的机会,然后output'hello,世界。
所谓的高阶函数似乎非常有用,并对下一个函数感兴趣。