javascript对象冒充中的this指的是什么?

来源:百度知道 编辑:UC知道 时间:2024/06/01 11:30:08
this.newMethod = ClassX;
this.newMethod();
delete this.newMethod;

·第二行代码的作用是什么?
·“this指向的是所属性的对象,而不是构造函数当前创建的对象”,这句话是什么意思?谁是‘所属的对象’,谁又是‘当前创建的对象’?

谢谢。
1··function ClassA(sColor){
2······this.color = sColor;
3··}
4··ClassA.prototype.sayColor = function(){
5······alert(this.color);
6··}
7···
8··function ClassB(sColor, sName){
9······ClassA.call(this,sColor);
10·····this.name = sName;
11·}
12·ClassB.prototype = new ClassA();
13·ClassB.prototype.sayName = function(){
14·····alert(this.name);
15·}
···
这段代码创建classB继承classA
可是,第12行,将classA赋给classB.prototype,那么在classB中定义的name属性不就不存在了?
但书上说,这种混合方式可以成功地继承classA并且不破坏classB中定义的属性和方法。究竟是怎么回事呢?

name并不定义在prototype里,而是定义在ClassB
所以调用new ClassB,那么产生的对象的结构应该像下面这样
ClassB
--color
--name
--prototype
----color
----sayColor
----sayName
----prototype
------sayColor

调用newMethod()

THIS是指你的创建对象或是当前的对象,
第一句是属性
第二是方法