2
0

关于javascript 对象(object)

2011/06/07 标签 , ,

在javascript 数字也可以是一个对象,所以你可以做以下这些:

// 转换成二进制
(5).toString(2) // 返回 "101"

// 内嵌迭代
Number.prototype.times = function(funct){
  if(typeof funct === 'function') {
    for(var i = 0;i < Math.floor(this);i++) {
      funct(i);
    }
  }
  return this;
}

(5).times(function(i){
  string += i+" ";
});
// 字符相等于"0 1 2 3 4 "

var x = 1000;
x.times(function(i){
  document.body.innerHTML += '<p>paragraph #'+i+'</p>';
});
// 插入1000个段落到页面文档中
1
0

javascript 对象可以有私有函数

function Person(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;

    // 私有函数只在内部可用
    function calcFullName() {
       return firstName + " " + lastName;    
    }

    //公有函数
    this.sayHello = function () {
        alert(calcFullName());
    }
}

//使用:
var person1 = new Person("Bob", "Loblaw");
person1.sayHello();

//这个调用出错
alert(person1.calcFullName());
0
0

删除javascript对象的属性

要更好的从对象中移除一个属性,最少用delete移除,避免把属性设为undifined.比如:
var obj = { prop1: 42, prop2: 43 };
obj.prop2 = undefined;
for (var key in obj) {
    ...
这个循环照样会把porp2计算在内。
要完全的移除prop2,你需要这样:
delete obj.prop2;
0
0

利用 [ ] 读取对象的属性

Javascript 对象允许你用 . 或 []来读取属性,用[]读取属性有时侯可以获得不同的功能效果,比如:
obj = {a:"test"};
var propname = "a";
var b = obj[propname];  // 得到 "test"
你甚至可以用它来掩盖非合法关键词,比如 'class'。 例如:
obj["class"] = "test";// class是关键词; obj.class是非法定义.
obj["two words"] = "test2"; //使用 . 操作符就不能有空格在中间.
0
0