本文目錄一覽:
- 1、javaScript 繼承的問題 class A繼承class B,A中有幾個對象,如何在B中添加對象呢? 求指點啊,謝謝
- 2、js中實現多繼承(合併多個class)
- 3、js 中如何定義類?如何繼承類?
- 4、js class繼承問題,希望new出子類的時候自動調用從父類繼承來的方法
javaScript 繼承的問題 class A繼承class B,A中有幾個對象,如何在B中添加對象呢? 求指點啊,謝謝
script type = “text/javascript”
//父類
function Person(name, age) {
//屬性
this.name = name;
this.age = age;
}
//方法
Person.prototype.showName = function() {
alert(this.name);
}
Person.prototype.showAge = function() {
alert(this.age);
}
//子類
function Coder(name, age, job) {
//繼承父類的屬性
//調用父類的構造方法
Person.call(this, name, age);
//增加自己的屬性
this.job = job;
}
//通過原型鏈繼承父類的方法
Coder.prototype = Person.prototype;
//增加自己的方法
Coder.prototype.showJob = function() {
alert(this.job);
}
//創建一個對象測試
var programer = new Coder(‘pro’, ’25’, ‘programer’);
programer.showName();
programer.showAge();
programer.showJob();
/script
js中實現多繼承(合併多個class)
const mixinClass = (base, …mixins) = {
const mixinProps = (target, source) = {
Object.getOwnPropertyNames(source).forEach(prop = {
if (/^constructor$/.test(prop)) { return; }
Object.defineProperty(target, prop, Object.getOwnPropertyDescriptor(source, prop));
})
};
let Ctor;
if (base typeof base === ‘function’) {
Ctor = class extends base {
constructor(…props) {
super(…props);
}
};
mixins.forEach(source = {
mixinProps(Ctor.prototype, source.prototype);
});
} else {
Ctor = class {};
}
return Ctor;
};
js 中如何定義類?如何繼承類?
過去一年了啊,LZ找到答案了么
我也是初學,下面我舉個簡單的例子吧
htmlscript language=”javascript”
function ClassA(){
this.color = “”;
}
function ClassB(){
ClassA.call(this); //this是ClassB的對象
}
var b = new ClassB();
b.color=”green”;
document.write(b.color+”br”); //green
/script/html
定義兩個類ClassA、ClassB,ClassB原本沒有color這個屬性,但是通過call函數將ClassA的東西都放入ClassB中,於是ClassB便繼承了ClassA的屬性color。
js class繼承問題,希望new出子類的時候自動調用從父類繼承來的方法
1.把父類的這個方法改成private 2.如果是需要一個子類可以其它子類不可以的話,那你就要考慮這樣的繼承是否合理了。 3.如果覺得合理並且有這鐘需要的話,方法一:在父類前面不要加任何修飾符。然後子類和調用類移到 其它包里 。方法二:空方法(取巧的做法)
原創文章,作者:SYS1N,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/128190.html