
获得徽章 0
经过一周编写 实现了一个json 指令集 并且用js 实现了运行
let program = {
['mainfunuuid']: {
name: 'mainfun',
codes: [
['__registerFun', ['somfunuuid']],
['__runFun', ['somfunuuid', [], {debugflag: 'somefun'}]],
['__runloop', ['arr', 'loop1blockuuid']],
['__runFun', [ 'console.log', [`"main outer"`, 'outer']]],
['__switch', [
['2 > 1', 'cond1blockuuid']
]]
],
props: function() {
return {
outer: 'main',
arr: [1,2,3]
}
}
}
}
let program = {
['mainfunuuid']: {
name: 'mainfun',
codes: [
['__registerFun', ['somfunuuid']],
['__runFun', ['somfunuuid', [], {debugflag: 'somefun'}]],
['__runloop', ['arr', 'loop1blockuuid']],
['__runFun', [ 'console.log', [`"main outer"`, 'outer']]],
['__switch', [
['2 > 1', 'cond1blockuuid']
]]
],
props: function() {
return {
outer: 'main',
arr: [1,2,3]
}
}
}
}
展开
评论
点赞
js创建一个struct
function defStruct(fun) {
let ins = {
[fun.name] : function() {
let obj = fun();
Object.defineProperties(obj, {
constructor: {
value: fun,
enumerable: false,
writable: true,
configurable: true,
},
})
if (obj.init) {
obj.init()
}
return obj
}
}
return ins[fun.name]
}
let Test = defStruct(
function Test() {
prop1 = 1;
function fun() {
this.prop1 = 8;
}
return {
prop1,
fun
}
}
)
let s = Test();
function defStruct(fun) {
let ins = {
[fun.name] : function() {
let obj = fun();
Object.defineProperties(obj, {
constructor: {
value: fun,
enumerable: false,
writable: true,
configurable: true,
},
})
if (obj.init) {
obj.init()
}
return obj
}
}
return ins[fun.name]
}
let Test = defStruct(
function Test() {
prop1 = 1;
function fun() {
this.prop1 = 8;
}
return {
prop1,
fun
}
}
)
let s = Test();
展开
评论
点赞
用了字符串模板简化了 css 定义
function strsel(strings) {
if (Array.isArray(strings)) {
return function(def = {}, callback) {
sel([strings[0], def], function() {
if (callback) {
callback()
}
})
}
}
}
strsel`@media (width > 600px)`({}, function () {
strsel`.cls`({
width: 180,
}, function () {
strsel`&:hover`({
'$varname': 180,
})
strsel`.sdsd`({
})
});
});
function strsel(strings) {
if (Array.isArray(strings)) {
return function(def = {}, callback) {
sel([strings[0], def], function() {
if (callback) {
callback()
}
})
}
}
}
strsel`@media (width > 600px)`({}, function () {
strsel`.cls`({
width: 180,
}, function () {
strsel`&:hover`({
'$varname': 180,
})
strsel`.sdsd`({
})
});
});
展开
评论
点赞
用自己的小框架实现了一种神奇的css写法
stylesheet({}, function() {
sel(['.cls', {
width: 180,
'--varname': 180
}], function() {
sel(['&:hover', {
width: 180,
'--varname': 180
}]);
sel(['.child', {
}])
});
sel(['@media and (width > 600px)', {
}], function() {
sel(['.cls', {
width: 180,
}]);
});
});
stylesheet({}, function() {
sel(['.cls', {
width: 180,
'--varname': 180
}], function() {
sel(['&:hover', {
width: 180,
'--varname': 180
}]);
sel(['.child', {
}])
});
sel(['@media and (width > 600px)', {
}], function() {
sel(['.cls', {
width: 180,
}]);
});
});
展开
3
点赞