摘要:
关键字 in 常用来判断对象是否有某个属性(也常用for in 来进行循环),那么在面向对象编程中常会用到的还有一个用来判断某个对象是否有某个属性的方法:Object.prototype中的hasOwnProperty( );hasOwnProperty( )与in的区别就是不会通过原形链进行查找。(用汤姆大叔的话讲就是:hasOwnProperty( )是在javascript中处理属性的方法中唯一的一个不会去查找原形链的方法,在他的这篇文章有一个小标题(hasOwnProperty函数:)中讲了用法和注意点)本篇主要是基础篇:使用 in 你可能会遇到的问题Object.prototype. 阅读全文
摘要:
我们经常会碰到undefined,那么它到底是什么,是 undefined 还是 ' undefined ' var aa={}; //ddd===undefined; //这里肯定会出现异常,ddd未定义,但是下面的所有情况都不会发生异常 //-----aa.bbb------- aa.bbb===undefined; //true aa.bbb===window.undefined; //true aa.bbb===Object.undefined; //true undefined===window.undefined; //true window.undefi... 阅读全文
摘要:
本篇文章针对一个面试题来了解 this ,重在过程题目如下: function Obj(msg){ this.msg = msg; this.shout = function(){ console.log(this.msg); } this.waitAndShout = function(){ // 要求: 隔五秒钟后执行上面的 shout 方法 }}1.如果直接加入的是setInterval()会是什么结果?function Obj(msg){ this.msg = msg; this.shout = function(){ console... 阅读全文
摘要:
在这个例子最后顺便谈一下我对new性能问题的理解1.关于new的一个例子//定义function F(){}console.log( F.prototype );//看一下 F 的原形对象F.prototype.id = 123;//在原形对象F.prototype中添加一个id属性console.log( F.prototype );var a = new F( ); //用操作符new 来调用方法 F()返回的是一个对象console.log( a ); //对象a只有一个属性:__proto__ ,这个属性指向的是F.prototypeconsole.log( a.id )... 阅读全文