javascript对象详细应用实例

网页特效对象详细应用实例

1. 当尝试检索对象的一个并不存在的成员元素的值,将返回一个undefined值。可以通过“||”运算符来填充默认值:

stooge["middle-name"] //undefined
var middle = stooge["middle-name"] || "tom";

2. 当尝试检索一个undefined值将会导致typeerror异常。可以通过“&&”运算符来避免错误:

flight.equipment  //undefined
flight.equipment.model //throw "typeerror"
flight.equipment && flight.equipment.model //undefined
3. 对象通过引用来传递。他们永远不会被拷贝

if (typeof object.beget !== 'function')
{
    object.beget = function (o)
    {
        var f = function () {};
        f.prototype = o;
        return new f();
    }
}

var another_stooge = object.beget(stooge);

a. 原型连接在更新时是不起作用的
当我们对某个对象作出改变时,不会触及到该对象的原型。
b. 原型连接只有在检索值的时候才被用到
如果尝试去获取对象的某个属性值,且该对象没有此属性名,那么从它的圆形对象中获取属性值。 (如果那个原型对象也没有该属性值,那么再从它的原型中寻找,依次类推,知道该过程左后的重点object.prototype。如果想要的属性完全不存在于原型链中,那么结果就是undefined值。这个过程称为委托)
c. 原型关系是一种动态关系。
如果我们添加一个新的属性到原型中,该属性会立即对所有基于该原形创建的对象可见。

5. 反射
在一些时候下,我们需要能够在对对象完全不了解的情况下进行处理,并且在处理之前发现他们的属性和方法,这个过程称作反射(reflection)。
在判断对象是否有某一属性时,可以使用”hasownproperty“方法,如果对象拥有独有的属性,它将返回true。
注:hasownproperty方法不会检查原型链。

6. 枚举
for in 语句可以用来遍历一个对象中的所有属性名。
属性名出现的顺序是不确定的,因此要对任何可能出现的顺序有所准备。如果你想要确保属性以特定的顺序出现,最好的办法就是完全避免使用for in语句,而是创建一个数组,在其中以正确的顺序包含属性名

//使用for in语句:
 var name;
 for (name in another_stooge)
 {
  if(typeof another_stooge[name] !== 'function')
  {
   document.writeln(name + ': ' + another_stooge[name]);
  }
 }

//使用for语句
 var i;
 var properties = [
  'first-name',
  'middle-name',
  'last-name',
  'profession'
 ]
 for (i=0; i<properties.length; i +=1)
 {
  document.writeln(properties[i] + ': ' +
     another_stooge[properties[i]]);
 }

时间: 2024-09-29 06:59:54

javascript对象详细应用实例的相关文章

微信浏览器内置JavaScript对象WeixinJSBridge使用实例

  这篇文章主要介绍了微信浏览器内置JavaScript对象WeixinJSBridge使用实例,本文给出了分享到朋友圈.发送给好友.分享到腾讯微博.关注指定的微信号等功能代码,需要的朋友可以参考下 微信公众平台开始支持前端网页,大家可能看到很多网页上都有分享到朋友圈,关注微信等按钮,点击它们都会弹出一个窗口让你分享和关注,这个是怎么实现的呢?今天就给大家讲解下如何在微信公众平台前端网页上添加分享到朋友圈,关注微信号等按钮. 一.微信内置浏览器 通过 Mac 远程调试 iPhone 上微信自己的

JavaScript对象创建模式实例汇总_javascript技巧

本文实例总结了JavaScript对象创建模式.分享给大家供大家参考,具体如下: 在JavaScript中创建对象是很容易的,可以使用对象字面量或者构造函数.常用的创建对象的模式有以下几种: 一. 工厂模式 工厂模式抽象了具体对象的过程,用函数来封装以特ing接口创建对象的细节. 如下: function createAnimal(name, age) { var o = new Object(); o.name = name; o.age = age; o.sayName = function

JavaScript对象反射用法实例_javascript技巧

本文实例讲述了JavaScript对象反射用法.分享给大家供大家参考.具体如下: 这里讲述JavaScript对象反射用法,涉及反射DOM对象和自定义对象 <html> <head> <title>JavaScript反射工具</title> <style type="text/css"> #show{ width:400px;height:300px; border:red solid 1px; overflow:scrol

微信浏览器内置JavaScript对象WeixinJSBridge使用实例_javascript技巧

微信公众平台开始支持前端网页,大家可能看到很多网页上都有分享到朋友圈,关注微信等按钮,点击它们都会弹出一个窗口让你分享和关注,这个是怎么实现的呢?今天就给大家讲解下如何在微信公众平台前端网页上添加分享到朋友圈,关注微信号等按钮. 一.微信内置浏览器 通过 Mac 远程调试 iPhone 上微信自己的网页,我们可以发现微信内嵌浏览器定义了一个私有 JavaScript 对象:WeixinJSBridge,通过操作这个对象的相关方法可以实现分享到微信朋友圈,和判断一个微信号的关注状态以及实现关注指定

Javascript对象Clone实例分析

 本文实例讲述了Javascript对象Clone用法.分享给大家供大家参考.具体如下:   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Object.prototype.Clone=function() { var objClone=new this.constructor(); //这里是创建一个与被Clone对象相同结构的对象 for(var key in this) { if(obj

javascript遍历控件实例详细解析

 这篇文章详细解析了javascript遍历控件实例,有需要的朋友可以参考一下 js遍历页面控件, 代码如下:  var inputArr = document.forms[0];    for( var i = 0; i < inputArr.length; i++ ) {     if( inputArr[i].type.toUpperCase() == "BUTTON" ) {      inputArr[i].disabled="disabled";

JavaScript String(字符串)对象的简单实例(推荐)_javascript技巧

返回字符串的长度: <html> <body> <script type="text/javascript"> var txt="Hello World!" document.write(txt.length) </script> </body> </html> 为字符串添加样式: <html> <body> <script type="text/java

如何判断Javascript对象是否存在的简单实例_javascript技巧

Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言描述的算法如下: if (myObj不存在){ 声明myObj; } 你可能会觉得,写出这段代码很容易.但是实际上,它涉及的语法问题,远比我们想象的复杂.Juriy Zaytsev指出,判断一个Javascript对象是否存在,有超过50种写法.只有对Javascript语言的实现细节非常清楚,才可能分得清它们的区别

在JavaScript中重写jQuery对象的方法实例教程_jquery

jQuery是一个款非常优秀的类库,它给我们解决了很多的客户端编程,但是任何东西都不是万能的,当它不能满足我们的需求时我们就需要对它进行重写,同时也不要影响其原有的功能或者修改其原有的功能:比如我现在的web应用程序大多数时候的数据交互都是通过Ajax来完成的,这样就可以将一些隐藏字段的数据保存在HTML标签的属性中,使HTML标签的代码量减少,如:ID,Timestamp等等,这些不需要用户输入但又不得不提交的字段,通过表单提交的做法是 <input name="ID" val