导航:首页 > 编程语言 > 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相关的资料

热点内容
jstr加点击事件 浏览:652
搜狗输入法最老版本下载地址 浏览:145
玛卡编程怎么样 浏览:302
怎么编程伺服器编码 浏览:109
什么是机密文件 浏览:258
网站收录量低应该如何解决 浏览:978
飞跃贷app官网 浏览:337
js正则表达式全为整数 浏览:561
在哪里免费下载大数据 浏览:218
linux怎么做视频网站 浏览:949
安卓舰娘登入不进去 浏览:145
ak47龙鳞升级成什么 浏览:256
联通sim卡怎么升级4g 浏览:120
linux大日志文件 浏览:974
u盘照片文件错误 浏览:493
大铁机车车载行车数据有哪些 浏览:440
app网址格式http怎么写 浏览:980
大数据古代的 浏览:199
编程中巡线模式是什么 浏览:991
武汉职业技术学院网络技术 浏览:97

友情链接