专栏名称: 前端JavaScript
分享 | 学习 | 交流 | 原创 分享是学习的开始;学习不必要从头开始,是从现在开始;交流能沟通你我,提高你的学识;期待你的加入!!! web前端技术交流,JavaScript,HTML5,CSS3……
目录
相关文章推荐
51好读  ›  专栏  ›  前端JavaScript

[S3-E375]JavaScript 高级技巧

前端JavaScript  · 公众号  · Javascript  · 2017-06-30 09:33

正文

请到「今天看啥」查看全文


else{

return new Person(name);

}

}


3 惰性载入函数


假设有一个方法X,在A类浏览器里叫A,在b类浏览器里叫B,有些浏览器并没有这个方法,你想实现一个跨浏览器的方法。


惰性载入函数的思想是:在函数内部改变函数自身的执行逻辑


function X(){

if(A){

return new A();

}

else{

if(B){

return new B();

}

else{

throw new Error('no A or B');

}

}

}

换一种写法


function X(){

if(A){

X = function(){

return new A();

};

}

else{

if(B){

X = function(){

return new B();

};

}

else{

throw new Error('no A or B');

}

}

return new X();

}


4 防篡改对象


4.1 不可扩展对象 Object.preventExtensions

// 下面代码在谷歌浏览器中执行

> var person = {name: 'wdd'};

undefined

> Object.preventExtensions(person);

Object {name: "wdd"}

> person.age = 10

10

> person

Object {name: "wdd"}

> Object.isExtensible(person)

false


4.2 密封对象Object.seal

密封对象不可扩展,并且不能删除对象的属性或者方法。但是属性值可以修改。


> var one = {name: 'hihi'}







请到「今天看啥」查看全文