Yêu cầu thg 3 5, 2023 9:08 SA 507 0 2
  • 507 0 2
0

Hỏi cú pháp của Javascript độc lạ Bình Dương của newbie, em đọc không hiểu nên nhờ mọi người

Chia sẻ
  • 507 0 2

Hi mn, cho em hỏi cái đoạn mà em đánh dấu có ý nghĩa gì, ()() có ý nghĩa gì? Đoạn code được lấy trong file làm việc với sequelize(Viết index làm việc với các model) Em là newbie mong được mọi người giúp đỡ

link code tham khảo: https://github.com/didinj/node-express-postgresql-sequelize/blob/master/models/index.js

2 CÂU TRẢ LỜI


Đã trả lời thg 3 5, 2023 10:37 SA
Đã được chấp nhận
+1
  • Cú pháp bạn thắc mắc nó tên là IIFE. Nói nôm na là khai báo xong thì gọi luôn hàm đấy.
  • Giải thích đoạn code:
  1. const model = require(path.join(_dirname, file)) là cú pháp import và nó trả về 1 hàm.
  2. Ví dụ như file course.js trong link github bạn gửi hàm trả về sẽ có dạng sau module.exports = (sequelize, DataTypes) => {}
  3. Hàm trả về nhận vào 2 đối số sequelizeDataTypes sau đó dùng IIFE gọi hàm ý và truyền vào 2 đối số là sequelizeSequelize.DataTypes
Chia sẻ
Đã trả lời thg 3 5, 2023 10:35 SA
+2

Viết tường mình ra từng tý nó như vầy thôi:

 # Original
 const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
# Explain
const filePath = path.join(__dirname, file);
const modelFn = require(filePath);
const model = modelFn(sequelize, Sequelize.DataTypes);
Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí