我很惊讶在阅读ES6时我找不到关于抽象类的任何内容.(通过"抽象类"我正在谈论它的Java含义,其中抽象类声明了子类必须实现的方法签名才能实现可实现化).
有没有人知道在ES6中实现抽象类的任何约定?能够通过静态分析捕获抽象类违规会很好.
如果我在运行时提出错误来表示尝试抽象类实例化,那么错误是什么?
我上课了
function Node() {
//implementation
}
Run Code Online (Sandbox Code Playgroud)
和另一堂课
function AttributionalNode() {
this.prototype.setAttr = function (attr) {
this.atText = attr;
};
}
AttributionalNode.prototype = new Node();
AttributionalNode.prototype.constructor = AttributionalNode;
Run Code Online (Sandbox Code Playgroud)
如何使类Node()无法实例化?比如我试试的时候
var node = new Node();
Run Code Online (Sandbox Code Playgroud)
所以它引发了一个例外?
我刚写了一些JavaScript代码,后面跟着我认为是创建带闭包和一些函数的对象的好习惯:
var myStuff = (function() {
var number = 0;
var fn = {};
fn.increment = function() { number++; };
fn.decrement = function() { number--; };
fn.getNumber = function() { return number; };
return fn;
})();
myStuff.increment();
myStuff.increment();
alert(myStuff.getNumber()); // alerts '2'
Run Code Online (Sandbox Code Playgroud)
编写像上一个代码片段一样的代码没有问题.我想编写一些功能类似于OOP"抽象"类的代码.这是我努力的结果:
var myStuff = (function () {
var number = 0;
var fn = {};
fn.increment = function () { number++; };
fn.decrement = function () { number--; };
fn.doSomethingCrazy = function () { throw new Error('not implemented'); …Run Code Online (Sandbox Code Playgroud) 我在javascript中遇到了原型继承.
我想要实现的是方法概述,必须实现/定义何时继承.
我想知道这是否可能,如果可行,如何.
我已经做了很多尝试在JavaScript中理解OOP但没有成功.
到目前为止我读过的所有文章都非常混乱,而且在JS中没有简单地解释OOP
作为在JavaScript中理解OOP的最后一次尝试,有人可以将以下代码转换为JS,请求?
public class Base
{
public String firstName; // public scope to simplify
public String lastName; // the same as above
Base(String firstName, String lastName)
{
this.firstName=firstName;
this.lastName=lastName;
}
}
public class Derived extends Base
{
public int age; // public scope to simplify
Derived(String firstName, String lastName, int age)
{
super(firstName, lastName);
this.age=age;
}
}
Run Code Online (Sandbox Code Playgroud)
里面主()
Derived person = new Derived("John", "Doe", 25);
System.out.println("My name is " + person.firstName + " " + person.lastName + " and …Run Code Online (Sandbox Code Playgroud)