viki-119 / JS-viki

1 stars 0 forks source link

数组length 对象 expando属性 for...in #2

Open viki-119 opened 9 years ago

viki-119 commented 9 years ago
传统的作法是赋给数组元素以 0 开始的数字索引。这些数组元素与 length 属性相交互。然而,
由于所有的数组也是对象,也支持 expando 属性。请注意,虽然如此,expando 属性并不以任何方
式与 length 属性相交互。
Expando属性不影响数组的长度(length属性);
//Initialize the array.
        var arr = new Array('zero', 'one', 'two');
        arr['orange'] = 'fruit';
        arr['carrot'] = 'vegetable';
        for (var t in arr) {
            alert(t+" "+arr[t]);
        }
        alert(arr.length);

        var obj={
            'a' : 'heihei',
            'b' : 'haha',
            'c' : 'gugu'
        }
        obj["ttt"]="xixi";
        for(var i in obj){
            alert(i+"  "+obj[i]);
        }
viki-119 commented 9 years ago
      function objTest(obj){
           var i,s = "";   // 创建变量。
           var t = new Array();   // 创建一个数组。
           t["Date"] = Date;   // 相当于给数组的属性赋值
           t["Object"] = Object;
           t["Array"] = Array;
           alert(t.length);//这里输出的length是0;
              for (i in t){
                 if (obj instanceof t[i])   // 检查 obj 的类。
                 {
                    s += "obj is an instance of " + i + "\n";
                 }
                 else 
                 {
                    s += "obj is not an instance of " + i + "\n";
                 }
           }
           return s;   // 返回字符串。
        }
        var obj = new Date();
        alert(objTest(obj));
viki-119 commented 9 years ago

var stu={'name':‘张三’,'age':22,'number':'44455','talk':function(){alert("asdfasdfs");}} stu.talk();//对象某个属性对应的值可以是函数; /***/ var stu={'name':‘张三’,'age':22,'number':'44455','talk':null} function t(){ alert("asdfsadf"); } stu.talk=t; stu.talk();

viki-119 commented 9 years ago

var stu={'name':‘张三’,'age':22,'number':'44455'} for(per in obj){ alert(per); alert(stu[per]);//在for...in 循环里 不能用stu.per 写法来遍历,会报错 } /***/ var zhang={'name':‘张三’,'age':22,'number':'44455','talk':null}; var lisi={'name':‘李四’,'age':22,'number':'47755','talk':null}; function t(){ alert(“I am”+this.name);//如果对象的某个方法需要调用自身的某个属性值,可以在函数中用一个关键词代替“自己”这个对象 this-->代表对象自己; //结合现实:一张纸前面写着,请在以下空格中签下自己的名字;谁签就写谁自己的名字; } zhang.talk=t; lisi.talk=t; zhang.talk(); lisi.talk();