关于javascript中的this对象
varname="全局";(function(){varname="匿名";Person=function(value){name="person";alert(this...
var name = "全局";
(function(){
var name = "匿名";
Person = function(value){
name = "person";
alert(this instanceof Person); //true
alert(this.name); //undefined
}
Person.prototype.getName = function(){
alert(this.name); //undefined
return name;
}
Person.prototype.setName = function(value){
name = value;
}
})();
var person = new Person();
person.getName();
为什么两个 this.name 都是 undefined啊? this 在这里到底是指的哪一个作用域呢? 展开
(function(){
var name = "匿名";
Person = function(value){
name = "person";
alert(this instanceof Person); //true
alert(this.name); //undefined
}
Person.prototype.getName = function(){
alert(this.name); //undefined
return name;
}
Person.prototype.setName = function(value){
name = value;
}
})();
var person = new Person();
person.getName();
为什么两个 this.name 都是 undefined啊? this 在这里到底是指的哪一个作用域呢? 展开
3个回答
展开全部
第一个this.name中的this是指向Person,Person并没有包含name变量
第二是指向getName ,
写法就错着了
还有你的那个name是匿名(自调用)函数的私有变量,匿名(自调用)函数体之外是不能访问的
第二是指向getName ,
写法就错着了
还有你的那个name是匿名(自调用)函数的私有变量,匿名(自调用)函数体之外是不能访问的
追问
第一个 this 指向 Person 的话,Person 中不是声明了 name = "person"吗?
在函数中声明:
this.name 和 name 区别在哪里呢?
追答
name = "person" 是匿名(自调用)函数的私有变量,已经声明过了,name = "person" 这只是重新赋值
展开全部
onclick="change_pic(this)"
function change_pic(obj) {
// 这里的obj才是你想要的东西
alert(obj.src);
}
function change_pic(obj) {
// 这里的obj才是你想要的东西
alert(obj.src);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var name = "全局";
(function(){
var name = "匿名";
Person = function(value){
this.name = "person";//这里加this***************
alert(this instanceof Person); //true
alert(this.name); //'person'
alert(name);//全局
}
Person.prototype.getName = function(){
alert(this.name); //person
return name;
}
Person.prototype.setName = function(value){
name = value;
}
})();
var person = new Person();
person.getName();
这样就好了,你写错了,Person作为构造函数用,里面加上this
this其实还是挺复杂的,javascript里的this是 动态的,其实就是动态作用域。
具体参照这篇文章:http://yanhaijing.com/javascript/2013/12/28/demystifying-this-in-javascript/
追问
我知道在构造函数中加 this 就可以。我是想知道,在这个构造函数中的 this ,到底指向哪里。是 person 这个 Person()构造函数的实例吗?
追答
对是指向实例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询