作者:zccst
按照我的理解,实例方法在对象中,原型方法在原型对象中。对象与原型对象之间是通过[[prototype]]指针建立起关系的。
问题是:怎么可以逆过来,原型对象方法里访问实例方法?
经过下面的例子可以看出:[color=red]是this在起作用[/color]。
分析:对象是 new Person(构造函数)得出的。所以this作用域中,即包含实例属性,也包含实例方法。而原型对象中使用的this正式该对象,所以在原型中可以调用实例属性和实例方法。
一,五种基本数据类型和一种复合数据类型。
五种基本数据类型
1,undefined
2,null
3,string
4,number
5,boolean
6,复合数据类型(Object,Array,Date,正则,Function,基本包装类型,内置对象)
二,操作符(一元、二元、三元)
1,一元操作符
2,位操作符
3,不二操作符
4,乘性操作符
5,加性操作符
6,关系操作符
7,相等操作符
8,条件操作符(三目)
9,复制操作符
10,逗号操作符
三,流程控制语句
break和continue
四,函数
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
[img]http://dl2.iteye.com/upload/attachment/0109/0668/fb266dfa-95ca-3d09-b41e-5f04a19ba9a1.png[/img]
按照我的理解,实例方法在对象中,原型方法在原型对象中。对象与原型对象之间是通过[[prototype]]指针建立起关系的。
问题是:怎么可以逆过来,原型对象方法里访问实例方法?
经过下面的例子可以看出:[color=red]是this在起作用[/color]。
分析:对象是 new Person(构造函数)得出的。所以this作用域中,即包含实例属性,也包含实例方法。而原型对象中使用的this正式该对象,所以在原型中可以调用实例属性和实例方法。
function Person(name){
this.name = name;
this.sayName = function(){
alert("privilege:"+this.name);
}
}
Person.prototype.sayNameInpt=function(){
alert("prototype:"+this.name);
}
Person.prototype.sayNameInpt2=function(){
console.log(this);
/*
name: "js"
sayName: function (){}
__proto__: Person
不能看出:this就是new出来的实例对象。所以原型对象中的方法也能调用。
*/
console.log('aaaaaaaaa'+this.name);//可以访问实例属性
this.sayName();//可以访问实例方法
}
var o = new Person("js");
//o.sayName();
//o.sayNameInpt();
o.sayNameInpt2();
一,五种基本数据类型和一种复合数据类型。
五种基本数据类型
1,undefined
2,null
3,string
4,number
5,boolean
6,复合数据类型(Object,Array,Date,正则,Function,基本包装类型,内置对象)
二,操作符(一元、二元、三元)
1,一元操作符
2,位操作符
3,不二操作符
4,乘性操作符
5,加性操作符
6,关系操作符
7,相等操作符
8,条件操作符(三目)
9,复制操作符
10,逗号操作符
三,流程控制语句
break和continue
四,函数
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
[img]http://dl2.iteye.com/upload/attachment/0109/0668/fb266dfa-95ca-3d09-b41e-5f04a19ba9a1.png[/img]