需求:
new Login().getUserName() 和Login().getUserName()分别返回什么?
//定义了函数
function getUserName() {
return 'window.cmschina';
}
function Login() {
//这里赋值是赋值window下的getUserName
getUserName = function () {
return 'cmschina';
};
return this; // 这里的this其实是window
}
// 给Login的getUserName赋值
Login.getUserName = function () {
return 'cms';
};
// 给Login原型添加getUserName方法
Login.prototype.getUserName = function () {
return 'china'
};
new Login().getUserName()
new Login()
实例login对象,调用getUserName()
方法,其实就是调用原型上的getUserName方法,所以返回值是china
Login().getUserName()
Login()
调用,返回值是this,其实就是window,因为Login()
的返回值是this
,Login调用的过程会给window.getUserName 赋值匿名函数,而该函数返回值是cmschina
网友评论