14条最佳JS代码编写技巧[译](2)

作者:Sofish 来源:幸福收藏夹 时间:2009-11-09 19:37:00 

3. 使用方括号记法

当访问由执行时决定或者包括要不能用”.”号访问的对象属性,使用方括号记法。如果你不是一个经验丰富的Javascript程序员,总是使用方括号是一个不错的做法

对象的属性由两种固定的方法来访问:”.”记法和”[ ]“方括号记法:

“.”号记法

MyObject.property“[ ]“

方括号记法

MyObject["property"]

使用”.”号,属性名是硬代码,不能在执行时改变。使用”[ ]“方括号,属性名是一个通过计算属性名而来的字符串。字符串要以是硬代码,也可能是变量,甚至可以是一个调回一个字母串值的函数。 如果一个属性名在执行产生,方括号是必须,如果你有 “value1″, “value2″, 和 “value3″这样的属性,并且想利用变量 i=2来访问。

这个可以运行

MyObject["value"+i]

这个不可以

MyObject.value+i

并且在某些服务器端环境(PHP、Struts等)下,Form 表单被附加了 [ ] 号来表示 Form 表单在服务器端必须被当作数组来对待。如此,用”.”号来引用一个包含 [ ] 号的字段将不会执行,因为 [ ] 是引用一个 Javascript 数组的语法。所以,[ ] 号记法是必须的:

这个可以运行

formref.elements["name[]"]

这个不可以

formref.elements.name[]

推荐使用”[ ]“方括号记法是说当其需要时(明显地)总是使用它。当不是严格需要使用它的时候,它是一个私人的偏好和习惯。一个好的经验原则是,使用”.”号记法访问标准的对象属性,使用”[ ]“方括号记法访问由页面定义的对象属性。这样,document["getElementById"]() 是一个完美可行的”[ ]“方括号记法用法,但 document.getElementById() 在语法上是首选,因为 getElementById 是一个 DOM 规范中定义的一个标准文档对象属性。混合使用这两个记法使哪个是标准对象属性,哪个属性名是由上下文所定义的,在代码中显得清晰明了:

document.forms["myformname"].elements["myinput"].value

这里,forms 是 document 的一个标准属性,而表单名 myformname 则是由页面所定义的。同时,elements 和 value 属性都是由规范所定义的标准属性。而 myinput 则是由页面所定义的。这页是句法让人非常容易理解(代码的内容),是一个推荐遵循的习惯用法,但不是严格原则。

标签:技巧,编程,js代码
0
投稿

猜你喜欢

  • python 实现学生信息管理系统的示例

    2021-05-01 01:37:24
  • ThinkPHP基于think-queue的队列插件实现消息推送

    2023-05-25 05:59:12
  • webpack5的entry和output配置小白学习

    2024-04-30 09:52:08
  • SqlServer参数化查询之where in和like实现之xml和DataTable传参介绍

    2012-05-22 18:38:49
  • JavaScript解决Joseph问题

    2008-06-21 17:11:00
  • ASp.net下fckeditor配置图片上传最简单的方法

    2023-03-25 02:34:00
  • 利用Python实现多种风格的照片处理

    2021-05-04 13:26:27
  • Python图像增强imgaug详解

    2022-02-07 17:07:40
  • Python搭建Keras CNN模型破解网站验证码的实现

    2023-04-16 15:51:08
  • JavaScript编制留言簿程序代码第1/3页

    2024-04-22 13:23:44
  • Python多线程实例教程

    2022-11-30 14:15:43
  • tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用

    2022-06-29 16:23:40
  • Python解析json文件相关知识学习

    2022-04-01 12:58:19
  • python 创建一维的0向量实例

    2021-09-06 22:29:50
  • 解决Vue+SpringBoot+Shiro跨域问题

    2024-05-05 09:06:03
  • XML与HTML的结合(上)

    2008-09-05 17:19:00
  • JS验证逗号隔开可以是中文字母数字

    2024-04-19 10:48:08
  • 详解model.train()和model.eval()两种模式的原理与用法

    2021-03-20 08:46:56
  • 详解Django admin高级用法

    2021-08-08 23:55:38
  • Python随机生成身份证号码及校验功能

    2023-03-20 08:30:47
  • asp之家 网络编程 m.aspxhome.com