Cần giúp đỡ sửa đoạn code js

em có 1 đoạn code này mong mọi người giúp đỡ.

var CkeckOut = require('CheckOut')

cc.Class({
	extends: cc.Component,

	properties: {
		NhacNen:  CkeckOut,
		NhacGame: CkeckOut,
	},
	onLoad(){
		if (!cc.RedT.isSoundBackground()) {
			this.NhacNen.OnChangerClick();
		}
		if (!cc.RedT.isSoundGame()) {
			this.NhacGame.OnChangerClick();
		}
	},
	onEnable: function () {
        this.node.runAction(cc.RedT.inGame.dialog.actionShow);
    },
    onDisable: function () {
        cc.RedT.inGame.dialog.resetSizeDialog(this.node);
    },
	setMusic: function(){
		var check = localStorage.getItem('SOUND_GAME');
		if(check == null){
			cc.RedT.setSoundGame(true);
		}else{
			if (cc.RedT.isSoundGame()) {
				cc.RedT.IS_SOUND = true;
			}else{
				cc.RedT.IS_SOUND = false;
			}
		}
	},
	OnChangerNhacNen: function() {
		cc.RedT.setSoundBackground(this.NhacNen.isChecked);
		if (this.NhacNen.isChecked) {
			cc.RedT.inGame.playMusic();
		}else{
			cc.RedT.inGame.pauseMusic();
		}
	},
	OnChangerNhacGame: function() {
		cc.RedT.setSoundGame(this.NhacGame.isChecked);
		if (this.NhacGame.isChecked) {
			cc.RedT.IS_SOUND = true;
		}else{
			cc.RedT.IS_SOUND = false;
		}
	},
	OnSignOutClick: function() {
		cc.RedT.inGame.notice.show({title: "ĐĂNG XUẤT", text: "Xác nhận hành động.\nHành động thực hiện đăng xuất khỏi tài khoản này?", button:{type: "sign_out", text: "ĐĂNG XUẤT"}})
	},
});
*line 11: missing : after property id
onLoad(){ 
*line 12: missing ; before statement                                                                                              if (!cc.RedT.isSoundBackground()) {
*line 13: syntax error
this.NhacNen.OnChangerClick();
*line 14: syntax error
}
*line 15: missing ; before statement
if (!cc.RedT.isSoundGame()) {
*line 16: syntax error
this.NhacGame.OnChangerClick();
*line 17: syntax error
}
*line 18: syntax error
},
*line 19: syntax error
onEnable: function () {

Đây không phải cú pháp thuần JS, có thể đây là Node.js. Bạn nên xem lại.

4 Likes

Lỗi chỉ ra khá rõ chỗ nào bị lỗi rồi, mời bạn sửa lại, dùng tí kiến thức tiếng Anh cũng biết cái này toàn là lỗi cú pháp.

2 Likes

anh có thể chỉ em được không ạ?

Mình lại nghĩ đây là code js chứ không phải là node, bạn để ý kĩ đoạn này xem:



Ngoài ra, dựa vào cách đặt tên thì có vẻ như đây là một đoạn code js trong một game HTML5 nào đó.

3 Likes

Lỗi ở đoạn này thôi, chẳng có gì sâu xa cả.

Nhưng ngay dòng đầu tiên, có từ khóa require.


https://www.quora.com/What-is-the-use-of-require-function-in-Javascript

Js thuần không có require.

3 Likes

anh nói rõ hơn được không

Đúng là JS thuần không có require nhưng require cũng có thể thêm vào bằng cách sử dụng thư viện bên ngoài như RequireJS, CommonJS (nodejs dùng cái này),…

https://requirejs.org/

2 Likes

@SITUVN.gcd Cái này là cocos2d-js.

Bạn bị lỗi cú pháp:

onLoad(){

sửa thành

onLoad: function(){

Thông báo lỗi đã ghi khá rõ rồi, thấy có điểm gì bất thường ở dòng 11 thì chú ý xem lại.

6 Likes

Hầu hết các thông báo đều báo lỗi cú pháp.
Bạn xem dòng onLoad() có khác gì với các dòng khác không? Gợi ý: dấu :.

3 Likes

cảm ơn anh . thank you

Sau dòng cảm ơn này, bạn rút ra bài học gì?

3 Likes

chú ý kỹ hơn các thông báo lỗi

2 Likes

Còn thiếu, đọc kĩ lại xem code bị lỗi chỗ nào, so sánh đoạn bị lỗi với các đoạn khác và nắm vững các kiến thức cơ bản, trong đó có cú pháp.

2 Likes

lỗi nhiều bạn ah. cảm ơn bạn

Trong java, c# em thấy toàn tự động import (IDE tự động phát hiện dev quên import), mà JS lại không hỗ trợ tự động import module à anh? Phải cài thư viện ngoài: RequireJS, CommonJS

RequireJS, CommonJS dùng để import thư viện chứ không phải là để import tự động. Code editor/IDE đọc code, thấy xài mấy cái đó (như khi code Node.js) thì tự động import thư viện theo cú pháp của nó.

Hồi xưa JS không có tính năng import thư viện nên mới phải cài bên ngoài. Từ bản ES6 trở đi, JS hỗ trợ ECMAScript module (ESM) thay cho mấy cái kia

2 Likes

Có phải là do hồi xưa js chỉ dùng cho trình duyệt nên việc liên kết giữa các file với nhau để import qua lại nói liên quan đến API hệ thống, hệ điều hành nên browser chặn lại vì lý do bảo mật?

Anh giải thích rõ giúp em với. Nghĩa là cú pháp require('abc') bây giờ không còn dùng nữa?

Code JS trên môi trường trình duyệt thì import bằng url hoặc viết trực tiếp trên trong thẻ script mà bạn :expressionless:

Hiện tại vẫn còn dùng nhưng đối với code mới thì người ta ưu tiên dùng ESM nhiều hơn. Nhiều thư viện hiện tại cũng đã chuyển sang dạng ESM. Hai cái này khác nhau chỗ nào thì bạn lên mạng tìm hiểu thêm. Cái này là tính năng của ES6 nên coder nào cũng nên biết.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?