Javascript 中的内部对象按照使用方式可分为动态对象和静态对象。在引用动态对象的属性和方法时,必须使用new关键字来创建一个对象实例,然后才能使用”对象名.成员”的方式来访问其属性和方法;引用静态对象的属性和方法时,不需要使用new关键字来创建对象实例,直接使用”对象名.成员”的方式来访问其属性和方法即可。


1. Object 对象
Object 对象提供了对象的最基本功能,这些功能构成了所有其他对象的基础,同时还提供了创建自定义对象的简单方式,不需要再定义构造函数。使用 Object 对象可以在程序运行时为 Javascript 对象随意添加属性,因此可以很容易的创建自定义对象。
2. Object 对象属性
(1) prototype 属性
该属性返回对象类型原型的引用:

ObjectName.prototype
用 prototype 属性可以提供对象的类的一组基本功能。对象的新实例"继承"赋予该对象原型的操作。
例如,要为Array对象添加返回数组中最大元素值的方法是,声明该函数,
将它加入Array.prototype,并使用它。
function array_max()
{var i,max=this[0];for(i=1;i<this.length;i++){if(max<this[i]);max=this[i];}return max;
}Array.prototype.max = array_max;
var x = new Array(1,2,3,4,5,6);
var y = x.max();
alert(y);输出:6
所有 JScript 固有对象都有只读的prototype属性,可以像该例中那样为原型添加功能,
但该对象不能被赋予不同的原型。然后,
用户定义的对象可以被赋给新的原型。
本语言参考每个内部对象的方法和
属性列表指出哪些对象原型的部分,哪些不是。

(2) constructor 属性
该属性表示创建对象的函数。

object.constructor
参数说明:
object : 必选项,是对象或函数的名称。
constructor 属性是所有具有prototype 的对象的成员。它们包括除Global 和 Math
对象以外的所有 JScript 固有对象。constructor
属性保存了对构造特定对象实例的函数的引用。例如:
var x = new String("Hi");
if(x.constructor==String)
{alert("zhen");
}
输出:"zhen"
或function MyFunc()
{}var y = new MyFunc();
if(y.constructor == MyFunc)
{alert("lala");
}
输出:"lala"









对象中的方法:



toString(),toLocaleString()方法返回string类型,valueOf()方法返回Object类型。









JavaScript 中的所有事物都是对象:字符串、数值、数组、函数…

此外,JavaScript 允许自定义对象。
JavaScript 对象

JavaScript 提供多个内建对象,比如 String、Date、Array 等等。

对象只是带有属性和方法的特殊数据类型.


访问对象的属性

属性是与对象相关的值。

访问对象属性的语法是:

objectName.propertyName

访问对象的方法

方法是能够在对象上执行的动作。

您可以通过以下语法来调用方法:

objectName.methodName()

创建 JavaScript 对象

通过 JavaScript,您能够定义并创建自己的对象。

创建新对象有两种不同的方法:

定义并创建对象的实例
使用函数来定义对象,然后创建新的对象实例
**创建直接的实例**这个例子创建了对象的一个新实例,并向其添加了四个属性:
实例person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";
**使用对象构造器**本例使用函数来构造对象:
实例
<!DOCTYPE html>
<html>
<body><script>
function person(firstname,lastname,age,eyecolor)
{this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}myFather=new person("Bill","Gates",56,"blue");document.write(myFather.firstname + " is " + myFather.age + " years old.");
</script></body>
</html>
**创建 JavaScript 对象实例**一旦您有了对象构造器,就可以创建新的对象实例,就像这样:var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");

把属性添加到 JavaScript 对象

您可以通过为对象赋值,向已有对象添加新属性:

假设 personObj 已存在 - 您可以为其添加这些新属性:firstname、lastname、age 以及 eyecolor:

person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";x=person.firstname;

在以上代码执行后,x 的值将是:

Bill

把方法添加到 JavaScript 对象

方法只不过是附加在对象上的函数。

在构造器函数内部定义对象的方法:

function person(firstname,lastname,age,eyecolor)
{this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;this.changeName=changeName;
function changeName(name)
{this.lastname=name;
}
}

changeName() 函数 name 的值赋给 person 的 lastname 属性。

现在您可以试一下:

myMother.changeName("Ballmer");

JavaScript 类

JavaScript 是面向对象的语言,但 JavaScript 不使用类。

在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。

JavaScript 基于 prototype,而不是基于类的。


JavaScript for…in 循环

JavaScript for…in 语句循环遍历对象的属性。
语法

for (对象中的变量)
{
要执行的代码
}

注释:for…in 循环中的代码块将针对每个属性执行一次。
实例

循环遍历对象的属性:

var person={fname:"Bill",lname:"Gates",age:56};for (x in person){txt=txt + person[x];}

基于对象编程:






内存回收

11. JavaScript 对象相关推荐

  1. 我对javascript对象的理解

    前言 JavaScript这门语言除了基本类型都是对象,可以说JavaScript核心就是对象,因此理解JavaScript对象及其种种特性至关重要,这是内功.本文介绍了我对es5对象,原型, 原型链 ...

  2. Javascript对象的查询字符串编码

    您是否知道将Javascript对象编码为可通过GET请求传递的string的快速简便的方法? 没有jQuery ,没有其他框架-仅是纯Javascript :) #1楼 如果要递归转换嵌套对象,并且 ...

  3. 如何将键/值对添加到JavaScript对象?

    这是我的对象文字: var obj = {key1: value1, key2: value2}; 如何向对象添加{key3: value3} ? #1楼 您可以使用其中任何一个(提供的key3是您要 ...

  4. 使用jQuery将表单数据转换为JavaScript对象

    如何将表单的所有元素转换为JavaScript对象? 我希望有一些方法可以自动从表单中构建JavaScript对象,而不必遍历每个元素. 我不需要$('#formid').serialize();返回 ...

  5. 如何动态合并两个JavaScript对象的属性?

    我需要能够在运行时合并两个(非常简单的)JavaScript对象. 例如,我想: var obj1 = { food: 'pizza', car: 'ford' } var obj2 = { anim ...

  6. 如何测试一个空的JavaScript对象?

    在AJAX请求之后,有时我的应用程序可能返回一个空对象,例如: var a = {}; 如何检查情况呢? #1楼 如果您使用的是较新的浏览器,则有一种简单的方法. Object.keys(obj).l ...

  7. 如何正确克隆JavaScript对象?

    我有一个对象x . 我想将其复制为对象y ,以使对y更改不会修改x . 我意识到,复制从内置JavaScript对象派生的对象将导致额外的不需要的属性. 这不是问题,因为我正在复制自己的文字构造对象之 ...

  8. JavaScript对象this指向(普通键this指向 非指向函数的键)

    1.结论 JavaScript对象普通键(非指向函数的键)this指向是window. 2.示例 <!DOCTYPE html> <html lang="zh"& ...

  9. JavaScript 对象与数组参考大全

    http://www.cnblogs.com/meil/archive/2006/06/28/437527.html本文列举了各种JavaScript对象与数组,同时包括对上述每一对象或数组所完成工作 ...

  10. Javascript 对象二(Number、String、Boolean、Array、Date、Math、RegExp)

    Javascript 对象二(Number.String.Boolean.Array.Date.Math.RegExp) Number 数字 对象 String 字符串 对象 Boolean 布尔 对 ...

最新文章

  1. Traveller项目介绍
  2. 云原生思想 — 云原生应用
  3. django.core.exceptions.ImproperlyConfiguredmysqlclient 1.3.13 ornewer is required you have 0.9.2(亲测)
  4. 乐高(LEGO)在线购物店面剖析
  5. 【python pandas excel操作】
  6. db2和mysql语句区别_db2和mysql语法的区别是什么
  7. 倍增:喷泉 深度解析(洛谷P7167)
  8. PI数据库的使用-PI System Management Tools
  9. cmd 找到8080对应进程_多进程概括
  10. 爬虫-scrapy数据的持久化存储
  11. 乐视 logo 换新:显示“老板造车美利坚”;雷军给米粉起名小粽子;谷歌浏览器不再隐藏完整 URL|极客头条...
  12. windows与linux多线程对比
  13. 【夏虫语冰】visio2013安装出错,无法打开注册表,错误码1402
  14. latex参考文献编译不成功
  15. 2017 清北学堂 Day 6终极考试报告
  16. GNSS常用术语(缩略语)总结------------持续更新
  17. 白色恋人--18首扣人心弦的经典情歌
  18. X86、NP、ASIC、MIPS架构对比,存储
  19. 神经网络之 CNN 与 RNN 再梳理
  20. 读书笔记 高效能人士的执行4原则

热门文章

  1. Python新手学习基础之循环结构练习
  2. 查询sql语句所花时间
  3. easyui源码翻译1.32--Droppable(放置)
  4. 这个爬虫是你五一假期所需要的!
  5. R语言构建RFM模型了解一下~~~
  6. php 点击菜单栏只刷新局部,layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法...
  7. Spring Security学习
  8. Ubuntu14.10安装Eclipse
  9. Python代码规范
  10. windows下重设mysql的root密码