浏览 1642 次
锁定老帖子 主题:《javascript权威指南第五版》对象
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-03
最后修改:2009-11-03
对象是组合的数据类型:他们集合了多个值到一个单元并且允许你用名字读写值。另一个解释是一个对象是无序属性的集合,每一个属性都有名字和对应的值。 不知道这个对象的描述是不是符合所有语言? 最简单创建对象的方法是用逗号分隔的名字/值对,用大括号包围起来。 var empty = {}; // 一个没有属性的对象 var point = { x:0, y:0 }; var circle = { x:point.x, y:point.y+1, radius:2 }; var homer = { "name": "Homer Simpson", "age": 34, "married": true, "occupation": "plant operator", 'email': "homer@example.com" }; 也可以用new操作创建一个特定的对象 var a = new Array(); // Create an empty array var d = new Date(); // Create an object representing the current date and time var r = new RegExp("javascript", "i"); // Create a pattern-matching object 7.2 对象属性 通常你可以用.操作符取得对象的属性。 // Create an object. Store a reference to it in a variable. var book = {}; // Set a property in the object. book.title = "JavaScript: The Definitive Guide" // Set some more properties. Note the nested objects. book.chapter1 = new Object(); book.chapter1.title = "Introduction to JavaScript"; book.chapter1.pages = 11; book.chapter2 = { title: "Lexical Structure", pages: 6 }; // Read some property values from the object. alert("Outline: " + book.title + "\n\t" + "Chapter 1 " + book.chapter1.title + "\n\t" + "Chapter 2 " + book.chapter2.title); 值得注意的是,这个例子还说明了你可以简单得赋值就可以创建一个新的对象属性,不需要var。 在JavaScript数组是对象,对象也可以像数组那样用中括号[]访问。 object.property object["property"] 这可以为程序带来很大的灵活性 var stock_name = get_stock_name_from_user(); var shares = get_number_of_shares(); portfolio[stock_name] = shares; JavaScript的for/in可以遍历一个数组或对象,如果将对象当作联合数组(associative arrays)将获得更大的力量。 var value = 0; for (stock in portfolio) { // For each stock in the portfolio, get the per share value // and multiply it by the number of shares. value += get_share_value(stock) * portfolio[stock]; } 这个代码如果没用for/in循环则做不了,因为不知道stocks Java可以通过反射得到一部分动态性,但会做得很复杂。不知道Scala有没有更好的方法? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |