Orion's Studio.

Orion's Studio.

it's better to burn out than to fade away

OO in JS(1)

创建对象

工厂模式

1
2
3
4
5
6
7
8
9
10
11
12
// 按照我的理解此时生成了一个prototype,constructor为Person1
function Person1(name) {
let o = new Object() // 等价于let o = {},注意new的是Object
o.name = name
o.sayName = function () {}
return o
}
let person1 = Person1('Orion')
Person1.prototype // __proto__为Obejct的只有constructor的对象,代表该构造函数对应的prototype
person1.__proto__ // Object,代表该实例的原型对象
person1 instanceof Person1 // false,是Object
person1.constructor === Person1 // false,是Object
WebStorm文件模板

Vue文件头注释(自用)

1
2
3
4
5
6
7
<!--
@Author: orion
@Descrition: a test note
@Date: 2017/12/14 15:34
@Modified by:
@Modify time:
-->
最近在看红宝书

对函数参数的处理跟java一毛一样

同样都是值类型,如果传入引用类型,则指向同一对象,而在函数内部改变函数指向并不影响原值

JS语句执行顺序的研究

在el-table中使用selection

1
2
3
<el-table :data="list" ...>
<el-table-column type="selection"></el-table-column>
</el-table>
1
2
3
4
5
6
7
8
callback: (res) => {
this.list = res.list // 后执行
this.list.forEach(row => {
if (row.isChecked) {
this.$refs.multipleTable.toggleRowSelection(row)
}
}) // 先执行
}
在el-table中使用el-input-number传值延迟

要说的就这么多

1
2
3
4
5
6
7
8
9
10
11
12
<el-table ...>
...
<el-table-column ...>
<template scope="scope">
<div>
<el-input-number v-model="scope.row.quantity" @change="(value) => handleInput(value, scope.row.quantity)" ...>
</el-input-number>
</div>
</template>
</el-table-colum>
...
</el-table>
1
2
3
4
handleInput (value, quantity) {
console.log(value) // 真实值
console.log(quantity) // 前一个值
},