为什么调用一个方法需要用new 关键字?
var stock=new getStock("IBM");
var stock=new getStock("IBM");
2017-04-16
你试试把new去掉后是什么效果。你会发现为什么去掉后是想要的结果。这里视频里this.name的this指向的是方法。setInterval里面的this指向的是全局的global,一般是window对象。所以才输出空。如果将new去掉,都指向的window,前面的this给全局对象的name赋值,后面也就获得到值了。这里涉及到一些js的基础也比较底层的知识,可以看一下。
针对代码,可以这么写,自己琢磨一下,有new和没有new的区别。我把setInterval换成了setTimeout,原理不变:
function getSocktet(name: String) { this.name = name; console.log(this); setTimeout(function () { console.log(this); },1000); } var stock = getSocktet("IBM");
举报