From 5f9683f25f0fa8f2a5f345fdaedc8dd39cad0637 Mon Sep 17 00:00:00 2001 From: dhrname Date: Sun, 4 Jan 2015 21:00:03 +0900 Subject: [PATCH] Enlighten the 'on' method --- tool/Spec/spec/BaseJSSpec.js | 11 +++++++++++ tool/funcproto/base.js | 7 ++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tool/Spec/spec/BaseJSSpec.js b/tool/Spec/spec/BaseJSSpec.js index 8ee0343..fbe0368 100644 --- a/tool/Spec/spec/BaseJSSpec.js +++ b/tool/Spec/spec/BaseJSSpec.js @@ -365,6 +365,17 @@ describe("base.js", function() { expect(_.b).toEqual(13); expect(_.c).toBe("bfp"); expect(_.call()).toEqual(24); + + /*mixメソッドでも、オブジェクト継承の後であれば上書きが可能*/ + _.up("$p").mix( { + a: 12, + b: 13, + c: base("$afp") + } ); + expect(_.$p.a).toEqual(12); + expect(_.$p.b).toEqual(13); + expect(_.$p.c).toBe(base("$afp")); + expect(_.$p.call()).toEqual(25); }); /*無効同値を調べる*/ diff --git a/tool/funcproto/base.js b/tool/funcproto/base.js index 2a1b9ea..2b997b4 100644 --- a/tool/funcproto/base.js +++ b/tool/funcproto/base.js @@ -93,11 +93,12 @@ var _base = { _name = name, //スコープチェーンのエイリアス ts = null, s = null, + tp, isCalled = false;//返り値の制御で使う te._child = null; - while (te._parent) { //親をさかのぼっていく - te._parent._child = te; - te = te._parent; + while (tp = te._parent) { //親をさかのぼっていく + tp._child = te; + te = tp; } while (te) { //子をたどっていく /*最初の返り値の結果はsとして記録して、後で返す*/ -- 2.11.0