1.在构造函数中,里面的this指向的是对象实例
方法:设置一个全局变量that,让构造函数里面的that=this
然后判断实例化对象和that是否相等
测试代码
<script>
var that=this;
function Star(uname,usex){
this.uname=uname;
this.usex=usex;
that=this
}
// 构造函数的原型对象,实例化对象的对象原型
Star.prototype.sing=function(){
console.log(this.uname+'会唱歌');
}
var ldh=new Star('刘德华','男')
console.log(that==ldh);
</script>
控制台输出结果
2.原型对象里面的this,也指向的是实例化对象
思路和第1问一样
测试代码:
<script>
var that=this;
function Star(uname,usex){
this.uname=uname;
this.usex=usex;
// that=this
}
// 构造函数的原型对象,实例化对象的对象原型
Star.prototype.sing=function(){
console.log(this.uname+'会唱歌');
that=this
}
var ldh=new Star('刘德华','男')
ldh.sing()
console.log(that==ldh);
</script>
控制台输出结构