JavaScript权威设计--JavaScript对象(简要学习笔记八)

1.属性的特性

一个属性包含一个名字和4个特性。4个特性:值,可写性,可枚举性,可配置性

 

2.对象的三个属性

一:原型属性

要想检测一个对象是否是另一个对象的原型,使用isPrototypeOf()方法

如:

var P={x=1};    //定义一个原型对象
var o=Object.create(p);    //使用这个原型对象创建一个对象
p.isPrototypeOf(o)    //true:o继承自p
Object.isPrototypeOf(p)    //true:p继承自Object.prototype

 

二:类属性

确定类属性函数:classof()

function classof(o){
    if(o===null){
        return "Null";
    }
    if(o===undefined){
        return "Undefined";
    }
    return    Object.prototype.toString.call(o).slice(8,-1);
}

运行:

classof(null)    //"Null"
classof(1)    //"Number"
classof("")    //"String"
classof(new f())    //"Object"
classof(windoe)    //"Window"(这是客户端宿主对象)

 

三:可扩展性

对象的可扩展性表示是否可以给对象添加新属性。

在ECMAScript5中所有的内置对象和自定义对象都是可扩展的。

可扩展性的目的是将对象“锁定”,以避免外界的干扰。

使用Object.esExtensible()来判断对象是否是可扩展的。

使用Object.preventExtensible()将对象转换为不可扩展的。一旦将对象转换为不可扩展的话就无法转换为可扩展的了。

 

四:序列化对象

对序列化是指将对象的状态转换为字符串,也可将字符串还原为对象。

ECMAScript5提供了内置函数JSON.stringify()与JSON.parse()

如:

o={
    x:1,
    y:{
        z:[false,null,""]
    }
}
s=JSON.stringify(o)    //'{"x":1,"y":{"z":[false,null,""]}'
p=JSON.parse(s)    //p是o的深拷贝

转载:http://www.cnblogs.com/zqzjs/p/4808522.html

时间: 2024-12-03 08:28:36

JavaScript权威设计--JavaScript对象(简要学习笔记八)的相关文章

JavaScript权威设计--Window对象(简要学习笔记十三)

1.Window对象是所有客户端JavaScript特性和API的主要接入点. Window对象中的一个重要属性是document,它引用Document对象. JavaScript程序可以通过Document对象和它包含的Element对象遍历和管理文档.   2.URL中的JavaScript 在URL后面跟一个JavaScript:协议限定符.里面的代码会作为JavaScript代码进行运行,需用分号分割. 如: <a href="javascript:alert('OK!')&qu

JavaScript权威设计--事件处理介绍(简要学习笔记十七)

1.事件相关概念 事件类型:一个用来说明发生什么类型事件的字符串 事件目标:是发生的事件或与之相关的对象. 事件处理程序(事件监听程序):是处理货响应事件的函数. 事件对象:是与特定事件相关并且包含有关该事件详细信息的对象. 事件传播:是浏览器决定哪个对象触发其事件处理程序的过程. 事件捕获:在容器元素上注册的特定处理程序有机会再事件传播打破真实目标之前拦截它. 阻止标签默认事件的发生   2.Window事件 focus,blur不冒泡.focusin,focusout冒泡. load当文档和

JavaScript权威设计--JavaScript函数(简要学习笔记十一)

1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScript构造函数调用的语法是允许省略实参列表和圆括号的. 如: var o=new Object(); //->等价于 var o=new Object;   第四种:使用call()与apply()间接调用(放在后面详细说明)   2.函数的实参与形参--可选形参 先看一个例子: function g

JavaScript权威设计--JavaScript函数(简要学习笔记十)

1.函数命名规范 函数命名通常以动词为前缀的词组.通常第一个字符小写.当包含多个单词时,一种约定是将单词以下划线分割,就像"like_Zqz()". 还有一种就是"likeZqz()".有些些函数是用作内部用的或者为私有函数通常以一条下划线为前缀,就像"_zqzName()".   2.以表达式方式定义的函数 如: var zqz=function (){ return "zhaoqize"; } 在使用的时候必须把它赋值给一

JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记三)

1.负号是一元求反运算 如果直接给数字直接量前面添加负号可以得到他们的负值     2.JavaScript中的运算超出了最大能表示的值不会报错,会显示Infinity. 超出最小也不报错,会显示-Infinity. 运算出的结果如果是个非数字的值得时候,用NaN表示.   3.字符串直接量拆分成数行 ECMAScript3中,字符串直接量必须下载一行中,而在ECMScript中,字符串直接量可以拆分成数行,每行必须以反斜线(\)介绍. 如:"two\lines"       &quo

JavaScript权威设计--Window对象之Iframe(简要学习笔记十四)

1.Window对象属性的文档元素(id) 如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向表示文档元素的HTMLElement对象. Window对象是以全局对象的形式存在于作用域链的最上层,这就意味着HTML文档中使用的id属性会成为可以被脚本访问的全局变量. 如: <button id="but"/> 就可以通过全局变量but来引用此元素.   2.多窗体窗口(

JavaScript权威设计--JavaScript对象(简要学习笔记七)

1.with语句 语法: width(object){ statement } with语句可用于临时扩展作用域链.作用域链可以按序检索的对象列表,通过它可以进行变量名解析. with将object添加到作用域链的头部,然后执行内部statement,最后把作用域链回复到原始状态.   但是:with语句要尽量避免使用.有with代码的语句难以优化,且运行的更慢. 在对象嵌套跟多层次的时候通常会使用with来优化. 如: document.forms[0].address.value //->

JavaScript权威设计--事件冒泡,捕获,事件句柄,事件源,事件对象(简要学习笔记十八)

1.事件冒泡与事件捕获 2.事件与事件句柄   3.事件委托:利用事件的冒泡技术.子元素的事件最终会冒泡到父元素直到跟节点.事件监听会分析从子元素冒泡上来的事件. 事件委托的好处:     1.每个函数都是对象,都会占用内存,内存中对象越多,性能越差.     2.必须事先指定所有事件处理程序而导致的DOM访问次数,会延迟整个页面的交互就绪时间. 怎样处理由于事件较多引起的性能差: 1.采用事件委托技术,限制简历的连接数量 2.在不需要的时候移除事件处理程序 例子: html: <div id=

JavaScript权威设计--JavaScript脚本化文档Document与CSS(简要学习笔记十五)

1.Document与Element和TEXT是Node的子类. Document:树形的根部节点 Element:HTML元素的节点 TEXT:文本节点   >>HtmlElement与HtmlDocument a:HtmlElement对象表示HTML中的一个个元素. b:HtmlDocument对象表示 HTML 文档树的根.HTMLDocument 接口对 DOM Document 接口进行了扩展,定义 HTML 专用的属性和方法.   >>HTML的DOM对象 a:DOM