New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

base-class-extend

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

base-class-extend - npm Package Compare versions

Comparing version 0.0.9 to 0.0.10

qiita-JP.md

48

lib/base-class.js

@@ -62,11 +62,9 @@ // base-class.js

var superCtor = this;
if (typeof superCtor !== 'function')
superCtor = Object;
if (!proto || typeof proto !== 'object') proto = {};
var superCtor = typeof this === 'function' ? this : Object;
if (!proto) proto = {};
var ctor = proto.hasOwnProperty('new') && proto.new ||
proto.hasOwnProperty('constructor') && proto.constructor ||
Function('proto, superCtor, BaseClass_new',
var ctor = proto.hasOwnProperty('constructor') ? proto.constructor :
proto.hasOwnProperty('ctor') ? proto.ctor :
proto.hasOwnProperty('new') ? proto.new :
Function('proto, superCtor, BaseClass_create',
'return function ' + name + '() {\n' +

@@ -77,6 +75,6 @@ ' "use strict";' +

' this instanceof Error && !this.hasOwnProperty("message"))\n' +
' return BaseClass_new.apply(proto.constructor, arguments);\n' +
' return BaseClass_create.apply(proto.constructor, arguments);\n' +
' if (superCtor !== Object && superCtor !== Array && superCtor !== Error)\n' +
' superCtor.apply(this, arguments); }')
(proto, superCtor, BaseClass_new);
(proto, superCtor, BaseClass_create);
if (typeof ctor !== 'function')

@@ -86,3 +84,3 @@ throw new TypeError('constructor must be a function');

ctor.prototype = proto;
ctor = Function('proto, ctor, BaseClass_new',
ctor = Function('proto, ctor, BaseClass_create',
'return function ' + name + '() {\n' +

@@ -93,13 +91,12 @@ ' "use strict";' +

' this instanceof Error && !this.hasOwnProperty("message"))\n' +
' return BaseClass_new.apply(proto.constructor, arguments);\n' +
' return BaseClass_create.apply(proto.constructor, arguments);\n' +
' ctor.apply(this, arguments); }')
(proto, ctor, BaseClass_new);
(proto, ctor, BaseClass_create);
}
ctor.prototype = proto;
// override constructor and new
delete proto.constructor;
// override constructor
delete proto.ctor;
delete proto.new;
setValue(proto, 'constructor', ctor);
setValue(proto, 'new', ctor);

@@ -117,7 +114,2 @@ // inherits from super constructor

// class initializer: initialize
var init = classProps.hasOwnProperty('initialize') && classProps.initialize;
delete classProps.initialize;
if (typeof init === 'function') init.call(ctor);
// class initializer: init

@@ -143,4 +135,5 @@ var init = classProps.hasOwnProperty('init') && classProps.init;

// add methods and class methods if not found (in prototype chain)
if (!('extend' in ctor)) ctor.extend = BaseClass_extend;
if (!('new' in ctor)) ctor.new = BaseClass_new;
if (ctor.extend !== BaseClass_extend) ctor.extend = BaseClass_extend;
if (ctor.create !== BaseClass_create) ctor.create = BaseClass_create;
if (ctor.new !== BaseClass_create) ctor.new = BaseClass_create;

@@ -164,4 +157,4 @@ if (!('constructors' in ctor))

// BaseClass.new
function BaseClass_new() {
// BaseClass.new or BaseClass.create
function BaseClass_create() {
//assert(this === this.prototype.constructor,

@@ -180,3 +173,3 @@ // 'prototype of class/constructor is not class/constructor');

obj.stack = obj.stack.split('\n').filter(function (str) {
return !/((base-class.js)|(BaseClass_new))/.test(str);
return !/((base-class.js)|(BaseClass_create))/.test(str);
}).join('\n');

@@ -216,3 +209,4 @@ setProto(obj, this.prototype);

{extend: BaseClass_extend,
new: BaseClass_new,
create: BaseClass_create,
new: BaseClass_create,
get constructors() {

@@ -219,0 +213,0 @@ var ctors = [], ctor = this;

{
"name": "base-class-extend",
"version": "0.0.9",
"version": "0.0.10",
"description": "Base Class constructor for easy class definition - supports getter/setter, inherit/extend Array Error or EventEmitter etc",

@@ -5,0 +5,0 @@ "main": "lib/base-class.js",

@@ -18,2 +18,4 @@ [base-class-extend](https://www.npmjs.org/package/base-class-extend) - npm

関連記事: [[JavaScript] getter/setterも使えるエコ楽なクラス定義 - もちろん継承も - private変数も](http://qiita.com/LightSpeedC/items/3946088b58925234cc48) - qiita
![base-class.png](images/base-class.png)

@@ -27,2 +29,10 @@

または
http://lightspeedworks.github.io/base-class/lib/base-class.js
```html
<script src="http://lightspeedworks.github.io/base-class/lib/base-class.js"></script>
```
# 使い方:

@@ -50,8 +60,10 @@

+ **proto**: 新しいクラスのプロトタイプオブジェクト (省略可)
+ **new**または**constructor**: コンストラクタ関数 (省略可)
+ **get** getterまたは**set** setter: getter/setter (省略可)
+ **new**, **ctor** または **constructor**: コンストラクタ関数 (省略可)
+ **get** prop(): getter関数 (省略可)
+ **set** prop(value): setter関数 (省略可)
+ **any methods**: メソッドまたはメンバー関数 (省略可)
+ **classProps**: クラス/静的プロパティのオブジェクト (省略可)
+ **init**または**initialize**: 初期化関数 (省略可)
+ **get** getterまたは**set** setter: getter/setter, (省略可)
+ **init**: 初期化関数 (省略可)
+ **get** prop(): getter関数 (省略可)
+ **set** prop(value): setter関数 (省略可)
+ **any methods**: 静的メソッドまたはクラス関数 (省略可)

@@ -95,3 +107,3 @@

## メソッド: Class.new(...)
## メソッド: Class.new(...) または Class.create(...)

@@ -107,2 +119,5 @@ クラスのインスタンスオブジェクトを作成する。

// または
var yourObj = YourClass.create();
// または
var yourObj = new YourClass();

@@ -205,3 +220,4 @@

+ **proto**: プライベート変数にアクセスできるメソッドが含まれるプロトタイプオブジェクト (必須)
+ **get** getterまたは**set** setter: getter/setter (省略可)
+ **get** prop(): getter関数 (省略可)
+ **set** prop(value): setter関数 (省略可)
+ **any methods**: メソッドまたはメンバー関数 (省略可)

@@ -208,0 +224,0 @@

@@ -27,2 +27,10 @@ [base-class-extend](https://www.npmjs.org/package/base-class-extend) - npm

or
http://lightspeedworks.github.io/base-class/lib/base-class.js
```html
<script src="http://lightspeedworks.github.io/base-class/lib/base-class.js"></script>
```
# USAGE:

@@ -50,8 +58,10 @@

+ **proto**: the prototype object for your class, optional
+ **new** or **constructor**: constructor function, optional
+ **get** getter or **set** setter: getter/setter, optional
+ **new**, **ctor** or **constructor**: constructor function, optional
+ **get** prop(): getter function, optional
+ **set** prop(value): setter function, optional
+ **any methods**: any method or member function, optional
+ **classProps**: the object for class or static properties, optional
+ **init** or **initialize**: initialize function, optional
+ **get** getter or **set** setter: getter/setter, optional
+ **init**: initialize function, optional
+ **get** prop(): getter function, optional
+ **set** prop(value): setter function, optional
+ **any methods**: any static method or class function, optional

@@ -95,3 +105,3 @@

## method: Class.new(...)
## method: Class.new(...) or Class.create(...)

@@ -107,2 +117,5 @@ Create an object, instance of the Class.

// or
var yourObj = YourClass.create();
// or
var yourObj = new YourClass();

@@ -205,3 +218,4 @@

+ **proto**: the prototype object contains methods accessing private variables, required
+ **get** getter or **set** setter: getter/setter, optional
+ **get** prop(): getter function, optional
+ **set** prop(value): setter function, optional
+ **any methods**: any method or member function, optional

@@ -208,0 +222,0 @@

@@ -74,3 +74,3 @@ // animal-test.js

}); // -> Dog class init. (Dog)
var d1 = Dog.new('Hachi'); // Class method new call
var d1 = Dog.create('Hachi'); // Class method new call
d1.introduce(); // -> My name is Hachi. I am a Dog.

@@ -77,0 +77,0 @@ Dog.dogClassMethod(); // -> Animal class method. (Animal), Dog class method. (Dog)

@@ -20,2 +20,3 @@ // function-test.js

var b3 = BaseClass();
var b4 = BaseClass.create();

@@ -30,2 +31,3 @@ // Prepare

var o3 = CustomObject();
var o4 = CustomObject.create();

@@ -37,2 +39,3 @@ // CustomArray

var a3 = CustomArray(1, 2, 3);
var a4 = CustomArray.create(1, 2, 3);

@@ -44,5 +47,7 @@ // CustomError

var e3 = CustomError('message3');
var e4 = CustomError.create('message4');
console.log('%s %s', e1, e1.message); //, e1.stack);
console.log('%s %s', e2, e2.message); //, e2.stack);
console.log('%s %s', e3, e3.message); //, e3.stack);
console.log('%s %s', e4, e4.message); //, e4.stack);

@@ -56,14 +61,17 @@ var EventEmitter = require('events').EventEmitter;

var ee3 = CustomEventEmitter();
var ee4 = CustomEventEmitter.create();
ee1.on('test', function () { console.log('ee1.test'); });
ee2.on('test', function () { console.log('ee2.test'); });
ee3.on('test', function () { console.log('ee3.test'); });
ee4.on('test', function () { console.log('ee4.test'); });
ee1.emit('test');
ee2.emit('test');
ee3.emit('test');
ee4.emit('test');
checkConstructor(BaseClass, Object, b1, b2, b3);
checkConstructor(CustomObject, Object, o1, o2, o3);
checkConstructor(CustomArray, Array, a1, a2, a3);
checkConstructor(CustomError, Error, e1, e2, e3);
checkConstructor(CustomEventEmitter, EventEmitter, ee1, ee2, ee3);
checkConstructor(BaseClass, Object, b1, b2, b3, b4);
checkConstructor(CustomObject, Object, o1, o2, o3, o4);
checkConstructor(CustomArray, Array, a1, a2, a3, a4);
checkConstructor(CustomError, Error, e1, e2, e3, e4);
checkConstructor(CustomEventEmitter, EventEmitter, ee1, ee2, ee3, ee4);

@@ -70,0 +78,0 @@ function checkConstructor(ctor, superCtor) {

@@ -15,2 +15,3 @@ // object-test.js

var b3 = BaseClass();
var b4 = BaseClass.create();

@@ -26,2 +27,3 @@ // Prepare

var s03 = SimpleClass0();
var s04 = SimpleClass0.create();

@@ -34,2 +36,3 @@ // SimpleClass1

var s13 = SimpleClass1();
var s14 = SimpleClass1.create();

@@ -45,7 +48,8 @@ // Prepare for Object

var s23 = SimpleClass2();
var s24 = SimpleClass2.create();
checkConstructor(BaseClass, b1, b2, b3);
checkConstructor(SimpleClass0, s01, s02, s03);
checkConstructor(SimpleClass1, s11, s12, s13);
checkConstructor(SimpleClass2, s21, s22, s23);
checkConstructor(BaseClass, b1, b2, b3, b4);
checkConstructor(SimpleClass0, s01, s02, s03, s04);
checkConstructor(SimpleClass1, s11, s12, s13, s14);
checkConstructor(SimpleClass2, s21, s22, s23, s24);

@@ -52,0 +56,0 @@ function checkConstructor(ctor) {

@@ -30,2 +30,3 @@ // private-test.js

var p3 = PrivateClass1(13);
var p4 = PrivateClass1.create(14);
p1.showPrivate();

@@ -40,4 +41,7 @@ console.log('p1.private1 = ' + p1.private1);

console.log('p3.private2 = ' + p3.private2);
p4.showPrivate();
console.log('p4.private1 = ' + p4.private1);
console.log('p4.private2 = ' + p4.private2);
checkConstructor(PrivateClass1, p1, p2, p3);
checkConstructor(PrivateClass1, p1, p2, p3, p4);

@@ -60,2 +64,3 @@ function checkConstructor(ctor) {

console.log(p3.constructors.map(mapName).join(' < '));
console.log(p4.constructors.map(mapName).join(' < '));
console.log(PrivateClass1.constructors.map(mapName).join(' < '));

@@ -32,3 +32,3 @@ // quick.js

myObj.value++; // 6 -> 7 throws Error
} catch (e) { console.log(e.stack || (e + '')); }
} catch (e) { console.log(e + ''); }

@@ -35,0 +35,0 @@ console.log();

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc