effective js-10-避免使用with

 <!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>js-避免使用with</title>

</head>

<body>

<script>

window.onload = function() {

   

   var test = function(obj, name) {

       with(obj){

           alert(obj.name); // obj

           alert(name); // obj 哈哈,看到问题所在了吧~O(∩_∩)O~

       }

   };

   

   test({name : "obj"}, "par");

   

};

</script>

<p>

★★★关于 with 必须知道的是★★★:

1. JS作用域可表示为高效的内部数据结构,变量查找非常快速。

但由于with代码块需要搜索对象的原型链来查找with代码块里的所有变量,

因此,其运行速度远远低于一般的代码块

2. 外部对象的变动引起的函数行为的不确定性(详见<script>里的代码)

</p>

</body>

</html>

猜你喜欢

转载自mumu-shoucang.iteye.com/blog/2279119