js深入理解(三)

来源:互联网 发布:青岛学淘宝美工 编辑:程序博客网 时间:2024/06/05 17:59

1.对象的三个属性

//原型属性Object.getPrototypeOf(a);//获取a的原型a.constructor.prootype;//获取a的原型(推荐)o.isPrototypeOf(a);//判读o是否是a的原型//类属性function classOf(o){if(o===null)return "null";if(o===undefined)return "undefined";return Object.prototype.toString.call(o).slice(8,-1);}<pre name="code" class="javascript">classOf(o)//输出Object//可拓展性Object.preventExtensions(o)//将对象转为不可拓展,一旦转为不可拓展,再也无法转回可拓展。Object.seal(o)//同上,同时不可配置Object.freeze(o)//更严格

2.数组

var a = [];a.push("a","b","c");//添加多个元素delete a[1];1 in a //返回falsea.length//返回3,删除元素,只会让数组变为系数数组a.pop(a[1])a.length//返回2//循环优化for(var i=0,len=a.length;i<len;i++){  if(!a[i]) continue;//跳过null与undefined  if(!(i in a)) continue;//跳过不存在的元素} 

3.Function构造函数

var x=1,y=2;var f = new Function("x","y","alert(x+y)");(function (){f(x,y);}());//输出3var scope = "global"function aaa(){    var scope = "local";    return new Function("return scope");}(function (){    alert(aaa()());}());//输出global,Function访问全局作用域




0 0