extends__中文文档|extends__ js中文教程|解析

npm npmdoc 2年前 (2021-12-26) 479次浏览

extends__中文文档|extends__ js中文教程|解析

安装命令:npm i extends__

extends__

必需的 CoffeeScript __extends 构建状态

新产品管理

安装

npm install --save extends__

混合语法

可以从多个类继承 – 一个 Base 和其余的 Mixin。
Mixin 方法不能调用super,也不能扩展任何东西。它们应该是一个简单的接口。Mixinconstructor被忽略。它不会被调用。
Mixin 可以是具有构造函数和
super调用的功能齐全的类构造函数将按照它们出现在继承列表中的顺序被调用。将首先调用超类构造函数。super里面混入方法将起身混入的继承链。

咖啡脚本

class Parent then constructor: ->
  (@log ||= []).push 'Parent'
 
class Mixin1 then constructor: ->
  @log.push 'Mixin1'
 
class Mixin2 then constructor: ->
  @log.push 'Mixin2'
 
class MixinParent then constructor: ->
  @log.push 'MixinParent'
 
class MixinChild extends MixinParent then constructor: ->
  super
  @log.push "MixinChild"
 
class Child extends [ParentMixin1MixinChildMixin2]
  constructor: ->
    super
    @log.push "Child"
 
console.log JSON.stringify (new Child).lognull'  '

会屈服

[
  "Parent",
  "Mixin1",
  "MixinParent",
  "MixinChild",
  "Mixin2",
  "Child"
]

GULP 一起使用

咖啡脚本

gulp = require 'gulp'
replace = require 'gulp-replace'
re = /((__)?extends?)\s*=\s*function\(child,\s*parent\)\s*\{.+?return\s*child;\s*\}/
 
gulp.task 'coffee'->
  gulp
    .src [ './source/**/*.+(coffee|litcoffee)' ]
    .pipe replace re'$1 = require("extends__")'
    .pipe gulp.dest './build'

JavaScript

var gulp, replace, re;
gulp = require('gulp');
replace = require('gulp-replace');
re = /((__)?extends?)\s*=\s*function\(child,\s*parent\)\s*\{.+?return\s*child;\s*\}/;
 
gulp.task('coffee', function() {
  gulp
    .src([ './source/**/*.+(coffee|litcoffee)' ])
    .pipe(replace(re, '$1 = require("extends__")'))
    .pipe(gulp.dest('./build'));
});

建造

git clone https://github.com/nhz-io/extends__.git
cd extends__
npm install
gulp

执照

麻省理工学院

版本

0.0.8

  • 更新了 README.md 中的 CoffeeScript 扩展示例

0.0.7

  • Mixin 现在可以有构造函数并调用 super

0.0.6

  • 新增Mixin功能

0.0.5

  • 更好的 README.md
  • 现在包装默认的CoffeScript扩展
项目贡献人员列表:


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:extends__中文文档|extends__ js中文教程|解析
喜欢 (0)
.excerpt .focus {display:none}