`
xwood
  • 浏览: 100704 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JS对象基本操作

阅读更多
1.关于this指针的理解
      this指针是面向对象程序设计中的一项重要概念,它表示当前运行的对象。在实现对象的方法时,可以使用this指针来获得该对象自身的引用。和传统意义的面向对象的语言不同,JavaScript 中的this 指针是一个动态的变量,一个方法内的this指针并不是始终指向定义该方法的对象的,在上一节讲函数的apply和call方法时已经有过这样的例子。为了方便大家理解,再来看下面的例子:
<script language="JavaScript" type="text/javascript">
<!--
//创建两个空对象
var obj1=new Object();
var obj2=new Object();
//给两个对象都添加属性p,并分别等于1和2
obj1.p=1;
obj2.p=2;
//给obj1添加方法,用于显示p的值
obj1.getP=function(){
alert(this.p); //表面上this指针指向的是obj1
}
//调用obj1的getP方法
obj1.getP();

//使obj2的getP方法等于obj1的getP方法
obj2.getP=obj1.getP;
//调用obj2的getP方法
obj2.getP();
//-->
</script>

        从代码的执行结果看,分别弹出对话框1 和2。由此可见,getP函数仅定义了一次,在不同的场合运行,显示了不同的运行结果,这是有this指针的变化所决定的。在obj1 的getP方法中,this就指向了obj1 对象,而在obj2 的getP 方法中,this就指向了obj2 对象,并通过this指针引用到了两个对象都具有的属性p。
        由此可见,JavaScript 中的this 指针是一个动态变化的变量,它表明了当前运行该函数的对象。由this指针的性质,也可以更好的理解JavaScript中对象的本质:一个对象就是由一个或多个属性(方法)组成的集合。每个集合元素不是仅能属于一个集合,而是可以动态的属于多个集合。这样,一个方法(集合元素)由谁调用,this指针就指向谁。实际上,前面介绍的apply方法和call方法都是通过强制改变this指针的值来实现的,使this指针指向参数所指定的对象,从而达到将一个对象的方法作为另一个对象的方法运行的效果。
        同时,每个对象集合的元素(即属性或方法)也是一个独立的部分,全局函数和作为一个对象方法定义的函数之间没有任何区别,因为可以把全局函数和变量看作为window对象的方法和属性。也可以使用new 操作符来操作一个对象的方法来返回一个对象,这样一个对象的方法也就可以定义为类的形式,其中的this指针则会指向新创建的对象。在后面可以看到,这时对象名可以起到一个命名空间的作用,这是使用JavaScript进行面向对象程序设计的一个技巧。例如:
var namespace1=new Object();
namespace1.class1=function(){
//初始化对象的代码
}
var obj1=new namespace1.class1();

        这里就可以把namespace1 看成一个命名空间。
由于对象属性(方法)的动态变化特性,一个对象的两个属性(方法)之间的互相引用,必须要通过this指针,而在传统语言中,this关键字是可以省略的。但是上面的例子中:
obj1.getP=function(){
alert(this.p); //表面上this指针指向的是obj1
}

        这里的this 关键字是不可省略的,即不能写成alert(p)的形式。这将使得getP 函数去引用上下文环境中的p变量,而不是obj1 的属性。

2.获取对象的所有属性
for(attrubute in deskTop) 
{ 
    alert(attrubute); 
} 
分享到:
评论

相关推荐

    JavaScript中对JSON对象的基本操作示例_.docx

    JavaScript中对JSON对象的基本操作示例_.docx

    【JavaScript源代码】JS操作对象数组实现增删改查实例代码.docx

     这里我就以学生对象数组为例了,其实这个数组和json数组操作起来基本一致的,转换一下即可。例如可以使用JSON.parse将一串JSON字符串转换为js对象数组。 测试数据: // 学生对象数组 var students = [ {id:1, ...

    Dick-gongko#webNote#JavaScript对象的基本操作(增删、遍历)(js)1

    举例://向obj中添加一个name属性//向obj中添加一个age属性// 获取对象中的属性,并打印出来// 打印结果:男// 打印结果:undefined方

    【JavaScript源代码】JavaScript中的Proxy对象.docx

     Js中Proxy对象 Proxy对象用于定义基本操作的自定义行为,例如属性查找、赋值、枚举、函数调用等。 语法 const proxy = new Proxy(target, handler);  target: 要使用Proxy包装的目标对象,可以是任何类型的...

    javascript面向对象编程范例

    javascript面向对象编程范例,范例包含功能在页面DIV上画直线,折线,圆,椭圆,不规则图形选区,并进行文字编辑以及拖放操作。最终还有对画出的图形进行保存还原功能。附件包含drawApi.js,index.htm等6个文件 绝对...

    JS原型对象操作实例分析

    主要介绍了JS原型对象操作,结合实例形式分析了JS原型对象基本原理、用法及操作注意事项,需要的朋友可以参考下

    WEB03-JavaScript-源代码.rar

    ◆掌握JavaScript标签的基本操作 ◆使用JS可以获得指定元素 ◆使用JS可以对元素的标签体进行操作 ◆使用JS可以对指定元素的样式进行操作(获得或修改) ◆使用JS可以编写各种事件 ◆使用JS可以编写定时程序 等等。

    Ajax基本对象的属性和方法

    Ajax基本对象的属性和方法:动态创建内容时所用的W3C DOM属性和方法。用于遍历XML的DOM元素方法。用于处理XML的DOM元素属性。标准XMLHttpRequest操作

    JavaScript中的Proxy对象

    Proxy对象用于定义基本操作的自定义行为,例如属性查找、赋值、枚举、函数调用等。 语法 const proxy = new Proxy(target, handler); target: 要使用Proxy包装的目标对象,可以是任何类型的对象,包括原生数组,...

    Javascript数组操作高级心得整理

    (1) JavaScript对象也是有属性和方法的 15  对象属性的使用 15  对象方法的使用 15 (2) 对象的定义与实例化 15 (3) 对象的作用域 16  JavaScript对象只有公用作用域 16  JavaScript对象没有静态作用域 16 ...

    JavaScript中对JSON对象的基本操作示例

    JSON格式本就发自于JavaScript中的对象和数组,所以js操作起来自然也是最为简单原始,接下来我们就来看一些常用的JavaScript中对JSON对象的基本操作示例

    jQuery一个非常流行的操作Dom的JavaScript库

    jQuery 一个非常流行的操作Dom的 JavaScript 库

    基于js对象,操作属性、方法详解

    在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类、Hashtable类等等。 目前在Javascript中,已经存在一些标准的类,例如Date、Array、...

    javascript完全学习手册1 源码

    3.1 JavaScript对象概述 43 3.1.1 对象的概念 43 3.1.2 使用JavaScript对象 基础知识 44 3.2 Array对象 46 3.2.1 创建Array对象 46 3.2.2 Array对象属性 47 3.2.3 Array对象方法 48 3.3 String对象 51 3.3.1 创建...

    JavaScript面向对象三个基本特征实例详解【封装、继承与多态】

    主要介绍了JavaScript面向对象三个基本特征,结合实例形式详细分析了JavaScript面向对象三个基本特征封装、继承与多态的概念、原理、用法与操作注意事项,需要的朋友可以参考下

    JavaScript对象链式操作代码(jquery)

    但是这链式操作的方式实在吸引人(貌似现在不少新库都采用了链式操作)。 新手无畏嘛,所以写了以下代码。主要是避免以后又忘了,呵呵。 代码如下: window.k = function() { return new k.fn.init(arguments); } k....

    javascript高级教程.pdf

    11.32 JavaScript 操作层 第12 章 字符串对象 12.33 转 义 字 符 12.34 字符串对象的属性 12.35 字符串对象的方法 第13 章 日期对象 13.36 时间对象的属性 13.37 时间对象的设置 第14 章 数 学 对 象 14.38 math ...

    JavaScript帮助手册-String对象.pdf

    字符串是 JavaScript 的一种基本的数据类型。 String 对象的 length 属性声明了该字符串中的字符数。String 类定义了大量操作字符串的方法。 需要注意的是,JavaScript 的字符串是不可变的,String 类定义的方法都不...

    易语言调用GoogleV8引擎执行JS

    通过暴露宿主对象 ( 变量,函数等 ) 到 JavaScript,JavaScript 可以访问宿主环境中的对象,并在脚本中完成对宿主对象的操作。吐槽:V8的各种奇淫技巧简直能折磨死很多人。我用C++封装了V8的基本功能(执行并编译...

Global site tag (gtag.js) - Google Analytics