gpt4 book ai didi

javascript 通过原型(prototype)继承

转载 作者:行者123 更新时间:2023-11-27 23:58:58 25 4
gpt4 key购买 nike

我正在读这篇文章article ,我拿了这个例子并做了一些很小的修改

function Parent( p1, p2 ) {
console.log('run here');
var prop1 = p1; // private property
this.prop2 = p2; // public property
// private method
function meth1() { return prop1; }
// public methods
this.meth2 = function(){ return this.prop2; };
this.meth6 = function(){ return meth1(); };
}
Parent.prototype.hello=function(){console.log('hi '+this.prop2);};



function Child( p1, p2, p3, p4 ) {
Parent.apply( this, arguments ); // initialize Parent's members
this.prop3 = p3;
this.meth3 = function(){ return this.prop3; }; // override
var prop4 = p4;
this.meth4 = function(){ return prop4; };
}
Child.prototype = new Parent(); // set up inheritance relation
// console.log(Child.prototype)
var cc = new Child( "one", "two", "three", "four" );
console.log(cc)

var result1 = cc.meth6(); // parent property via child
var result2 = cc.meth2(); // parent method via child
var result3 = cc.meth3(); // child method overrides parent method
var result4 = cc.hello();
console.log(result1,result2,result3,result4);

问题是即使 cc.hello 方法似乎存在,但是当我调用它时,控制台返回未定义,有人可以解释一下为什么吗?谢谢

最佳答案

方法hello不返回值,因此它是未定义

您可以将方法更改为类似这样的方法来返回值:

Parent.prototype.hello = function(){
return 'hi '+ this.prop2;
};

关于javascript 通过原型(prototype)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31999323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com