您的位置:首页 > Web前端 > JavaScript

javascript深入了解(四)

2015-03-30 01:16 246 查看
看下面一段函数声明:

function beginObject(){
this.db=null;
this.query="grant all privileges";
(function doPack() {
this.db="Connection";
console.log(	this.db);
})();
}
var parent=new beginObject();
console.log(parent.db);
console.log(parent.query);

//函数声明为类时,doPack自动执行,此时this.db为“Connection”,确实,控制台也确实输出的是“Connection”,但是当声明了类,并打印parent.db时,db仍然是初始值null


    为什么会这样呢?

    以此类推,也就是说,在javascript的继承中,子类继承的都应该是父类最初始话时的值,父类立即执行函数中的值不会被继承

    仔细想想,继承是不依赖具体对象的。但感觉还是很牵强:

    接下来声明一个函数Dog,去继承beginObject

function dog(){
this.sx="dog";
}

dog.prototype=new beginObject();

var test=new dog();
console.log(dog.db);

    上面的代码输出的undefined,你的眼睛是不是亮瞎啦!更正dog为test,输出的是null。
    感觉还是不科学

    未完待续...

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript