在 JavaScript 中,可以使用工厂方法(Factory Method)创建对象。工厂方法是一种创建对象的设计模式,它通过一个函数来封装对象的创建过程,并返回新创建的对象。

下面是一个简单的示例,演示如何使用工厂方法创建对象:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 定义一个工厂方法
function createPerson(name, age) {
// 创建一个新对象
var person = {};

// 添加属性和方法到对象
person.name = name;
person.age = age;
person.sayHello = function() {
console.log("Hello, my name is " + this.name + " and I'm " + this.age + " years old.");
};

// 返回创建的对象
return person;
}

// 使用工厂方法创建对象
var john = createPerson("John", 25);
var mary = createPerson("Mary", 30);

// 调用对象的方法
john.sayHello(); // 输出:Hello, my name is John and I'm 25 years old.
mary.sayHello(); // 输出:Hello, my name is Mary and I'm 30 years old.

阅读全文 »


作用域简单来说就是一个变量的作用范围。
在 JavaScript 中作用域分成两种:

全局作用域

  • 直接在 script 标签中编写的代码都运行在全局作用域中
  • 全局作用域在打开页面时创建,在页面关闭时销毁
  • 全局作用域中有一个全局对象 window,window 对象由浏览器提供,可以在页面中直接使用,它代表的是整个的浏览器的窗口
  • 在全局作用域中创建的变量都会作为 window 对象的属性保存
  • 在全局作用域中创建的函数都会作为 window 对象的方法保存
  • 在全局作用域中创建的变量和函数可以在页面的任意位置访问,在函数作用域中也可以访问到全局作用域的变量。
  • 尽量不要在全局中创建变量
阅读全文 »


在 JavaScript 中,可以使用匿名函数的直接调用(Immediately Invoked Function Expression,IIFE)来立即执行函数。

下面是一个使用匿名函数直接调用的示例:

1
2
3
4
(function() {
// 在这里编写需要执行的代码
console.log("这是一个匿名函数的直接调用示例。");
})();

在上面的示例中,我们使用 (function() { … })() 的语法来创建一个匿名函数,并立即调用它。函数体内的代码会立即执行。

阅读全文 »


CSS BEM(块元素修饰符)是一种命名约定和方法论,用于在编写可维护和可扩展的 CSS 代码时提供结构和规范。它的目标是解决样式表的命名冲突问题,并提供一种一致性和可重用性的编码方式。

BEM 的命名约定由以下三个部分组成:

块(Block):代表一个独立的、可重复使用的组件或模块,它是页面上的一个独立单元。块的命名应该简洁、清晰,并用一个单词或短语表示,使用连字符分隔单词(例如:button、header)。

元素(Element):代表块的内部元素,它们不能独立存在,必须作为块的一部分存在。元素的命名应该以块的名称为前缀,用两个连下划线 ** 进行分隔(例如:button**text、header__logo)。

修饰符(Modifier):代表块或元素的不同状态或变体。修饰符是可选的,可以通过改变外观、行为或状态来扩展块或元素。修饰符的命名应该以块或元素的名称为前缀,用两个连短划线 – 进行分隔(例如:button–primary、header–fixed)。

阅读全文 »


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<el-card class="box-card" @mouseente native="enter" @mouseleave.native='leave'>
<div slot="header">
<span>卡片名称</span>
<el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
</div>
<div v-for="o in 4" :key="o" class="text item">
{{'列表内容 ' + o }}
</div>
</el-card>

methods: {
enter(){
console.log('enter')
},
leave(){
console.log('leave')
}
},
阅读全文 »
0%