`
millton0518
  • 浏览: 2034 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

JavaScript中with、this用法小结

 
阅读更多

JavaScript中with、this用法小结

with 语句 为一个或一组语句指定默认对象。

用法:with (<对象>) <语句>;

with 语句通常用来缩短特定情形下必须写的代码量。在下面的例子中,请注意 Math 的重复使用:

x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10);
y = Math.tan(14 * Math.E);

当使用 with 语句时,代码变得更短且更易读:

with (Math) {
   x = cos(3 * PI) + sin(LN10);
   y = tan(14 * E);
}

this 对象 返回“当前”对象。在不同的地方,this 代表不同的对象。如果在 JavaScript 的“主程序”中(不在任何 function 中,不在任何事件处理程序中)使用 this,它就代表 window 对象;如果在 with 语句块中使用 this,它就代表 with 所指定的对象;如果在事件处理程序中使用 this,它就代表发生事件的对象。

一个常用的 this 用法:

<script>
...
function check(formObj) {
   ...
}
...
</script>

<body ...>
...
<form ...>
...
<input type="text" ... onchange="check(this.form)">
...
</form>
...
</body>

这个用法常用于立刻检测表单输入的有效性。
---------------------------------------------
javascript 中this 的用法:
1.<div onclick="// 可以在里面使用this">division element</div> this 指向div
2.    <div id="elmtDiv">division element</div>
       <script language="javascript">
        var div = document.getElementById('elmtDiv');
        div.attachEvent('onclick', EventHandler); //attachEvent把div的onclick事件和一个方法绑定
         function EventHandler()
         {
         // 在此使用this
          }
        </script>在此this 指向window对象,若要引用div对象this.event.srcElement;
3、用DHTML方式在事件处理函数中使用this关键字:
<div id="elmtDiv">division element</div>
<script language="javascript">
var div = document.getElementById('elmtDiv');
div.onclick = function()
{
    // 在此使用this
};
</script>产生的方法同上,但此处的this 指向div
4、类定义中使用this关键字:
function JSClass()
{
      var myName = 'jsclass';
      this.m_Name = 'JSClass';
}
JSClass.prototype.ToString = function()
{
      alert(myName + ', ' + this.m_Name);
};
var jc = new JSClass();
jc.ToString();//这是JavaScript模拟类定义中对this的使用,这个和其它的OO语言中的情况非常的相识。但是这里要求成员属性和方法必须使用this关键字来引用,运行上面的程序会被告知myName未定义。
5、为脚本引擎内部对象添加原形方法中的this关键字:
Function.prototype.GetName = function()
{
      var fnName = this.toString();
      fnName = fnName.substr(0, fnName.indexOf('('));
      fnName = fnName.replace(/^function/, '');
      return fnName.replace(/(^\s+)|(\s+$)/g, '');
}
function foo(){}
alert(foo.GetName());    //这里的this指代的是被添加原形的类的实例,和4中类定义有些相似,没有什么太特别的地方。
2
0
分享到:
评论

相关推荐

    javascript对象的相关操作小结

    `with`语句用于设置作用域,简化代码,但现代JavaScript开发中通常避免使用,因为它可能引起性能问题和不易调试的代码。 JavaScript对象操作是JavaScript编程的基础,熟练掌握这些操作对于编写高效、易维护的代码...

    javascript中break,continue和return语句用法小结

    在JavaScript编程中,`break`、`continue` 和 `return` 是三种控制流程的关键语句,它们各自有着独特的用途,帮助程序员更灵活地控制程序的执行流程。以下是对这三种语句的详细说明: 1. **`break` 语句** - `...

    Javascript拓展String方法小结

    JavaScript 的 `String` 类型虽然已经提供了很多内置的方法,但在实际项目中,有时还需要对这些方法进行扩展以满足特定的需求。本文将详细介绍几种常用的自定义 `String` 方法,包括 `EndWith`, `StartWith`, `Trim`...

    ajax小结

    **Ajax小结** Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,...

    JavaScript 基础问答三

    JavaScript 的注释使用方法 **问题**: 如何在JavaScript代码中插入注释? **解答**: JavaScript 支持三种不同类型的注释方式: 1. **多行 C 风格注释**: - 这种注释通过 `/*` 开始并以 `*/` 结束。 - 示例: `...

    三步搞定:Vue.js调⽤Android原⽣操作

    #### 小结 以上三步为我们展示了如何在Vue.js应用中调用Android原生操作。这种方法不仅增强了应用的功能性,也提高了跨平台应用的灵活性。需要注意的是,在实际开发过程中还需考虑安全性问题,确保只允许可信的...

    Vue框架TypeScript装饰器使用指南小结

    本文将详细介绍Vue框架下TypeScript装饰器的使用,并提供一些实用的示例来帮助理解装饰器在Vue中的应用。 装饰器本质上是一种特殊的声明,它可以被附加到类声明、方法、访问符、属性或参数上。装饰器使用@...

    .htaccess

    当然,这只在你知道你想拦截的IP地址时才有用,然而现在网上的大多数用户都使用动态IP地址,所以这并不是限制使用的常用方法。 &lt;br&gt;You can block an IP address by using: 你可以使用以下命令封禁一个IP地址...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...

    计算机应用技术(实用手册)

    后面是IDE设备的类型和硬件参数,TYPE用来说明硬盘设备的类型,我们可以选择AUTO、USER、NONE的工作模式,AUTO是由系统自己检测硬盘类型,在系统中存储了1-45类硬盘参数,在使用该设置值时不必再设置其它参数;...

Global site tag (gtag.js) - Google Analytics