instanceof 操作符用来比较两个操作数的构造函数。只有在比较自定义的对象时才有意义。如果用来比较内置类型,将会和 typeof 操作符 一样用处不大。比较自定义对象 function Foo() {} function Bar() {} Bar.prototype = new Foo(); new Bar() instanceof Bar; // true new Bar() instanceof Foo; // true // 如果仅仅设置 Bar.
函数是JavaScript中的一等对象,这意味着可以把函数像其它值一样传递。一个常见的用法是把匿名函数作为回调函数传递到异步函数中。函数声明 function foo() {}上面的方法会在执行前被解析(hoisted),因此它存在于当前上下文的任意一个地方,即使在函数定义体的上面被调用也是对的。 foo();
和 in 操作符一样,for in 循环同样在查找对象属性时遍历原型链上的所有属性。注意: for in 循环不会遍历那些 enumerable 设置为 false 的属性;比如数组的 length 属性。 // 修改 Object.prototype Object.prototype.bar = 1; var foo = {moo: 2}; for(var i in foo) { console.log(i);