导航:首页 > 编程语言 > js匿名函数this

js匿名函数this

发布时间:2022-01-19 22:54:11

1. javascript 匿名函数中this为什么是window对象

this

含义:表示函数的所有者或作用域。JavaScript与this相关的难题是,不能保证对函数应用那个作用域?

问题:

js">window.onload=function(){
window.name="window";
/*
*字面值对象actionScope方法:
*myScope():它在控制台输出"name:"+this.name,其
*属性insideScope在控制台输出"insidename:"+this.name
*/
varactionScope={
name:"jjjaiyy",
myScope:function(){
console.log("name:"+this.name);//name:jjjaiyy
insideScope=function(){
console.log("insidename:"+this.name);//insidename:window
};
insideScope();//执行
}
};
actionScope.myScope();
}

问题来了?(匿名函数中this为什么是window对象)

因为嵌套函数(insideScope()) 与 包围对象的内部函数(myScope() )的执行环境分离开了,并且所有无作用域的函数(只有全局对象)自动变成窗口对象的属性。


解决:

使用bind()方法。

myScope:function(){
console.log("name:"+this.name);//name:jjjaiyy
insideScope=function(){
console.log("insidename:"+this.name);//insidename:jjjaiyy
}.bind(this);
insideScope();//执行
}

bind()方法,使用apply()方法把函数绑定到传递给对象的对象(将这个方法绑定到父对象中),共享执行环境。

2. 匿名函数的this指向为什么是window

this在面向对象的编程语言里指的是当前对象。1、在函数中,因为函数不是一个对象,所以在函数内的中的当前对象应该是其父对象,没有自定义的父对象只能是其根对象Window。2、解释实例如下:<pre t="code" l="js"><script type="text/javascript">
window.onload=function(){
alert(this);
}
</script>结果弹出的应该为window对象,因为此时函数不是对象,只是一个实践处理函数,所以this应该为当前对象即window对象。

3. javascript,this,anonymous function能帮忙解释下这段代码

javascript是脚本 this是指向 anonymous function 是匿名函数 希望我的回答对你有所帮助,祝你身体健康!

4. javascript 中 匿名函数后面括号中函数怎么调用 是什么意思 (function(){ }(this, function(obj){ }))

它可以解释成为“匿名函数自调用”,也就是说,定义一个匿名函数,然后马上调用它(因为它是匿名的,如果不立即调用就获取不到该函数的引用了)。通常它被应用在一些大型的JS框架中(如上面所说的),因为这个匿名函数的函数体相当于提供一个匿名的名字空间,这样就不会再与用户自定义的JS函数、变量、对象发生冲突了。尽管JS没有显示地提供命名空间的定义和使用机制,但这种匿名方式却不失为是一种很好的解决命名空间问题的方法。

所以说,(function(){代码})()就等于执行了一个函数,只不过它是匿名的而已。如果在这个匿名函数内部想再次调用这个函数,就需要调用constructor属性了(这是Object中定义的,JS的继承机制如同Java一样保证了了所有对象都继承Object类)。

5. javascript有时为什么一定要用this如以下例子。

but[i].onclick=function()
{
this.className='aaa'; //这样写是对的,this代表了当前的点击的对象
};

but[i].onclick=function()
{
but[i].className='aaa'; //这样写会报错,TypeError: but[i] is undefined
};

因为在匿名函数内找不到but[i],这是因为在上下文中没有对but[i]进行声明,在循环体内简单修改下代码

var buts = but[i]; //把but[i]赋值给bugs,那么在匿名函数内就可以用了
buts.onclick=function()
{
buts.className='aaa';
};

不过里面用this还是好些,因为用了上面的,那么如果你有好几个input框的话,结果只有最后的input的css起作用

6. js 闭包匿名函数内的方法怎样被外部调用

var a = function(){
this.b = function(){
console.log("我是闭包函数");
}

return this;
}

调用:内容
var test = new a();
test.b();

或者:
a().b();

7. js 中对象与匿名函数的问题

js中apply()方法是函数源的一个属性point.getX().apply() 这么用的时候,getX() 这是一个执行的函数,返回值是一个数字
p.apply(),p是一个函数

正确写法应该是point.getX.apply()

8. js函数中匿名函数的this指针指向问题javascript高手请进!!!

匿名函数的this一般都是指向window的,这个不需要分析。

《javascript高级程序设计》这本书里的匿名专函数这一章也有讲到,摘属抄如下:

this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。不过,匿名函数的执行环境具有全局性,因为其this对象通常指向window。

9. js 的匿名函数 它是怎么调用的 怎么运作

/*第一种,赋值给变量然后通过变量调用*/
varfun=function(){

};
fun();//调用

/*第二种就是立即执行,就是在匿名函数后边添加一个括号*/
(function(){

}());//结构一
function(){

}();//结构二
varfun2=function(){

}();//结构三

方法一适合在任意位置调用,方法二适用于闭包

阅读全文

与js匿名函数this相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接