gpt4 book ai didi

javascript - 我怎样才能像 jQuery 那样在函数内部做可变对象?

转载 作者:行者123 更新时间:2023-11-29 19:00:51 24 4
gpt4 key购买 nike

我有显示通知的功能

var notification_box = {
notification: function (msg) {
$('#notification_box').animate({
top: "100"
}).text(msg)
}
}

我用

声明它
notification_box.notification("wwaaaa");

如何用this声明函数?

notification_box.notification({
msg: "wwaaaa"
});

最佳答案

使用点号或括号号。

您正在将对象传递给 object notification_box 中的函数 notification。在函数中,msg 指的是您传递的对象。该函数的属性是 msg,因此 msg.msg(或 msg['msg'])是访问该变量的方式。

var notification_box = {
notification: function(msg) {
$('#notification_box').animate({
top: "100"
}).text(msg.msg) //look at the dot notation here, it refers to the object
}
}


notification_box.notification({
msg: "wwaaaa"
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="notification_box"></div>


更酷的是 defineProperty 使用 gettersetter

var notification_box = {"notify_message" : ""};

Object.defineProperty(notification_box, "notification", {
get : function(){return this.notify_message;},
set : function(value){
$('#notification_box').animate({top: "100"}).text(value);
this.notify_message = value;
}
});

//set
notification_box.notification = "waaaaaaa";
//get
console.log(notification_box.notification);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="notification_box"></div>

关于javascript - 我怎样才能像 jQuery 那样在函数内部做可变对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46952131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com