当前位置:首页 > 日记 > 正文

Javascript中的详细解决方案

Javascript中的详细解决方案
这是这里的主题,不远。这本身是很简单的,总是指向类的当前实例,这不能指定一个值。前提是,这不能是类/对象,分离,这是一个常见的面向对象语言的关键字在极端一点,如果你写的是JS在功能风格书写而不是面向对象的,所有的代码就少了很多,甚至没有。记住,当你用这个,你应该有一个对象/类的发展,否则,这仅仅是一个副作用一个函数调用。

Javascript中的这一点总是让人困惑。它应该是JS的一个众所周知的坑,个人也认为js中的这个不是一个好的设计,而且由于这个后期绑定的属性,它可以是一个全局对象,当前对象,或者……有些人甚至不用它们,因为它们很大。

事实上,如果您完全掌握了这一工作原理,它自然不会进入这些坑:

1。这在全局代码中
警戒(此)
窗口

全局将指向全局对象,甚至在浏览器中,甚至窗口。

2。作为一个简单函数调用
功能foocoder(x){
这个;
}
(2)foocoder;
警报(x);
全局变量x值为2。

这里指向全局对象,即窗口,在严格的模式下,它是未定义的。

三.方法作为对象调用
聪明的编码器;
var
名称:foocoder
你好:函数(某物){
console.log(this.name + 某事);
}
}
person.hello(Hello World);

输出foocoder说你好世界。这一点对人的对象,当前对象。

4。作为一个构造函数
新的foocoder();

函数中的这个点指向新创建的对象。

5。内部功能
聪明的编码器;
var
名称:foocoder
你好:函数(某物){
VaR方法sayHello =功能(某物){
console.log(this.name + 某事);
};
Sayhello(某物);
}
}
person.hello(Hello World);
聪明的程序员说你好世界
在内部函数,这不绑定到外部函数对象的预期,但必然是全局对象,这通常被认为是Javascript语言中的一个设计错误,因为没有人希望在内部功能指向全局对象。处理的一般方法是挽救这个一个变量,一般同意,或自:
聪明的编码器;
var
名称:foocoder
你好:函数(某物){
var =;
VaR方法sayHello =功能(某物){
console.log(that.name + 某事);
};
Sayhello(某物);
}
}
person.hello(Hello World);
/ / foocoder说你好世界

6。使用调用并应用设置
person.hello.call(人,世界);

应用程序类似于调用,但是以下参数是通过数组传递的,而不是单独的:
电话(thisarg {,arg1,arg2,…});
/ /参数列表,arg1,arg2,…
申请(thisarg {,argarray });
/ /参数数组,argarray

两者都用于将函数绑定到一个特定的对象,当然这将在此时显式地设置为第一个参数。

Simply summing up

对以上几点的简要总结可以发现,事实上只有第六分是令人费解的。

事实上,它可以概括为以下几点:

1。当函数被称为对象的方法调用时,这指向对象。

2。当函数被称为淡入函数调用时,这指向全局对象(当严格模式未定义时)

这在3。构造函数指向新创建的对象。

这在4。嵌套函数不继承上面函数的这个函数,如果需要,可以使用一个变量保存上面函数的这个函数。

摘要的简单之处在于,如果在函数中使用了该函数,则只有当对象直接调用函数时,才会指向对象。
Obj.foocoder();
foocoder.call(obj,…);
foocoder.apply(obj,…);

更进一步

我们可能经常写这样的代码:
$(#some-ele).Click = obj.handler;

如果这是用于处理程序,这将必然目标显然不是,转让后,该函数在回调执行,这势必对美元(#一些div)元。这就需要一个函数的执行环境的理解。本文不打算延长该函数的执行环境,可以参考的执行环境和在Javascript高级程序链的介绍。需要指出的是,它对JS函数的执行环境的了解将更好地了解这。

那么我们如何解决回调函数绑定的问题呢介绍了一种新的方法在ES5,绑定():
Fun.bind(thisarg { { {,arg1,arg2,} } }…)
thisarg
调用绑定函数时,参数被指定为原始函数运行时的这个参数。当使用新操作符调用绑定函数时,参数无效。
arg1,arg2,…
当调用绑定函数时,这些参数,加上绑定函数本身的参数,在原始函数时被用作参数。

此方法创建一个新的功能叫做绑定功能,结合功能的绑定方法的第一个参数是创造了它,并在第二次传递的参数绑定的方法与参数绑定功能操作本身按照顺序为原函数的参数来调用原函数。

显然,绑定方法可以很好地解决上述问题。
$(#一些元素),Click(person.hello.bind(人));
/ /对应的元素被点击时,输出foocoder说你好世界
事实上,这种方法也很容易模拟,我们看看Bind方法的源代码在Prototype.js:
function.prototype.bind =函数(){
var fn =,= array.prototype.slice.call args(参数),对象为args.shift();
返回函数(){
返回fn.apply(对象,
Args.concat(array.prototype.slice.call(参数)));
};
};
我相信全文后,这不再是一个坑,大家都明白,想知道更多的网站学习点击。

相关文章

Javascript中常见的标签和方法概述

Javascript中常见的标签和方法概述

方法,标签,常见,电脑软件,Javascript,什么是Javascript (1)Javascript是一种基于对象(对象)和事件驱动(事件驱动)的脚本语言,具有安全性能。 (2)Javascript是Netscape公司开发的一种脚本语言。它的程序可以嵌入HTML页面,并在浏览器中直接进行解释和执行。 (3)Javascript可以通过…

如何cdrx4添加透视点的吗CDR透视效

如何cdrx4添加透视点的吗CDR透视效

透视,制作教程,效果,电脑软件,CDR,如何cdrx4添加透视点的吗我们想把透视效果添加到CDR的图片中,但是很多朋友不会制作,所以我们可以分享详细的制作过程。 如何cdrx4添加透视点的吗将透视图添加到CDR中的图片,并分享下面的具体教程。 1,选择文…

PS图象处理软件画出一个超现实的三

PS图象处理软件画出一个超现实的三

水表,画出,图象,室外,处理软件,本教程介绍PS图象处理软件绘制三维超真实的户外水表,水表引出超现实的教程是很困难的,作者没有做绘图过程的详细解释,具体如何操作,工具的参数数目都跳过不说,所以PS必须有学习者的基本需求。但教程非常实用,和你的…

excel2010不同颜色的标签显示重复e

excel2010不同颜色的标签显示重复e

教程,显示,标签,不同颜色,电脑软件,有很多重复的表单数据,在这个过程中如果用不同的颜色标记,那么它会发现过程比较方便,有很多方法可以达到这个效果,本文我们将学习填充颜色使用新规则的个人感觉形式,这个方法不错,感兴趣的朋友可以参考哦,还是需…

PowerPoint快速插入数百张PPT基本

PowerPoint快速插入数百张PPT基本

教程,数百,快速,电脑软件,PowerPoint,如果你想插入几十张甚至几百张照片,并要求每张图片插入每张幻灯片页面,这意味着在几张照片中有几张幻灯片,你会怎么做 与常用的方法按点击插入图片;具有;RARR;文件菜单命令,然后选择图片,或单击格式命令;RARR;背…

烟花教程绘制角落和填充颜色

烟花教程绘制角落和填充颜色

填充,教程,绘制,烟花,角落,烟花是如何绘制圆角矩形并填充颜色的烟花是一种网页图像渲染软件。手机图标的应用也是适用的。因此,绘制圆角矩形和填充颜色是最常见的技巧。接下来,共享操作过程。 烟花是一种网页图像渲染软件。手机图标的应用也…

PS如何将切片保存为若干PNG

PS如何将切片保存为若干PNG

切片,如何将,保存为,电脑软件,PS,PS如何将图片切片保存为若干PNG图片有时照片里有许多小图片。我们需要单独保存每一张小照片。这里我们使用ps切片工具加辅助线快速将一张图片分割成多张图片并保存下来。 做网站设计的朋友一定用过PS来贴图…

诗意伤感情侣签名情侣签名

诗意伤感情侣签名情侣签名

情侣,诗意,伤感,电脑软件,诗意,深刻的含义,独特的兼容性,这篇文章带给你最具诗意和独特的个性特征,希望你喜欢它。 你告诉我,我会更好,我会快乐;事实上,我只想你,我只想你能给。 当你离开地面,在你身后的地方,不是花瓣,是我凋零的心。 在你懂得珍惜之前…

WPS如何计算单词文字WPS文本教程

WPS如何计算单词文字WPS文本教程

文本,计算,文字,教程,单词,WPS如何计算单词数,不知道小伙伴让小编辑器详细介绍操作方法。 1,首先打开文件,我们可以看到一个左下角;字号;有WPS的字数为你文章的字数。 2,我们还可以点击在菜单栏;查看查看;单词的数量按钮。 3、点击弹出字数;的对话框…

在背景纹理中简单快速生成黑白灰纹

在背景纹理中简单快速生成黑白灰纹

纹理,白灰,背景,快速,简单,本教程是对AI的简单介绍,它是一种简单快速的制作黑白灰色纹理和背景纹理的方法。 今天我们要学习用AI制作黑白纹理的简单快速纹理和背景纹理。纹理粒子背景纹理不同于上次教程中所教的纹理。它主要用于网页设计,用…

PS工具将胖妹液化整容瘦身修长的双

PS工具将胖妹液化整容瘦身修长的双

工具,修长,双腿,瘦身,电脑软件,本教程介绍朋友PS液化工具将胖妹脸瘦,有着长长的腿,方法很简单哦,有需要的朋友可以学习一下,看一眼 主要分享如何使用PS优化小粗腿,腿短,腿更修长和胖妹曲线,如何使用工具来瘦脸液化。 方法/步骤 打开电脑上的PS软…

Word2010如何筛选、去背景字的常见

Word2010如何筛选、去背景字的常见

常见问题,筛选,背景,电脑软件,对Office2010发布后,就受到了很多用户的肯定,和一些实用技术进行了介绍。 提示1:截取当前窗口 我们知道,Windows Vista系统已经开始,有一个内置的捕捉工具名为组件,可以部分替换第三方的截图工具,但现在我们可以在Off…