87,964
社区成员
发帖
与我相关
我的任务
分享
function MyObj() {
var name = 'MyObj下的name<br/>';
this.doFunction = function () {
resultCon.innerHTML += this.name;//这里的this是指的doFunction,而不是外面的MyObj,所以没定义
};
}
<script type="text/javascript">
var resultCon;
var name1 = 'window下的name <br />'; // 1.此name 全局可用
function MyObj() {
var name3 = 'MyObj 下的私有 name<br />'; // 2.此name 为MyObj私有变量
this.name = 'MyObj下的name<br />'; // 3. name 是myObj 的一个属性,可通过.来调用
this.doFunction = function (name) {
resultCon.innerHTML += name3; // 4.这里的name为MyObj私有变量
resultCon.innerHTML += this.name; // MyObj下的name
this.name = name; // 重写
resultCon.innerHTML += this.name; // 指针指向 此函数内部的name
};
}
window.onload = function () {
resultCon = document.getElementById('result');
resultCon.innerHTML += name1; // 打印
var obj = new MyObj();
resultCon.innerHTML += obj.name; // 打印3
obj.doFunction('88888');
};
</script>
<div id="result">代码输出结果:<br /></div>
function MyObj() {
var name = '函数局部作用域对象中的name变量<br/>';
this.name = '实例对象中的name属性<br/>';
this.doFunction = function () {
document.write(name);
document.write(this.name);
};
}
var obj = new MyObj();
obj.doFunction();
function MyObj() {
var name = 'MyObj下的name<br/>';
alert(this instanceof MyObj);
this.doFunction = function () {
resultCon.innerHTML += this.name;
alert(this instanceof MyObj);
};
}
弹出来两个true ,说明了两个this都是指代obj,obj里面没有name属性所以undefined