in语句的习惯

Phi*_*enn 0 javascript

这个页面有一个例子:

for (var name in buz) {
   if (buz.hasOwnProperty(name)) {}
}
Run Code Online (Sandbox Code Playgroud)

防止在原型中看到东西.这个hack使得"for in"语句在JavaScript中几乎无用.目前的建议是不要使用"for in".

问:是否可以编写自定义"for in"函数,该函数自动包含if(buz.hasOwnProperty(name)){}条件?

我想的是:

window.whatFor = function(variable,object) {
   for (var variable in object) [
      if (object.hasOwnProperty(variable) {
         do something here
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

用法:

whatFor(name,buz) {
do something here 
}
Run Code Online (Sandbox Code Playgroud)

Hog*_*gan 5

我想这就是你想要的

window.whatFor = function(obj,funct) {
   for (var v in obj) {
      if (obj.hasOwnProperty(v)) {
         funct(v);
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

然后.

whatFor(sam, function (x) { alert(x); } );
Run Code Online (Sandbox Code Playgroud)

搞砸了 - 因为,为什么不呢?