我不明白为什么当我打电话时这个新的_AutoInit();的console.log(_pear());我得到了未定义但是当我像这样调用_AutoInit();的console.log(_pear());我知道了吗?
var _AutoInit = function()
{
this.Hash = '?';
};
var _pear = function() {
return this.Hash;
};
new _AutoInit();
console.log(_pear())
///////////////////////////
_AutoInit();
console.log(_pear());
答案 0 :(得分:0)
如果没有new
,则this
内的_AutoInit
为window
,因此您已完成
window.Hash = '?';
现在位于_pear
,this
此处为window
(或未定义),所以
return window.Hash; // returns "?"
并记录日志?
您可能想要设置继承,所以像这样
var _AutoInit = function () {
this.Hash = '?';
};
_AutoInit.prototype._pear = function () {
return this.Hash;
};
// then
var a = new _AutoInit();
a._pear(); // "?"