js深入理解(三)

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 //返回false
a.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);
}());//输出3

var scope = "global"
function aaa(){
    var scope = "local";
    return new Function("return scope");
}

(function (){
    alert(aaa()());
}());//输出global,Function访问全局作用域




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值