我有这个功能来显示通知
var notification_box = {
notification: function (msg) {
$('#notification_box').animate({
top: "100"
}).text(msg)
}
}
我用
声明了它notification_box.notification("wwaaaa");
如何用这个声明函数?
notification_box.notification({
msg: "wwaaaa"
});
答案 0 :(得分:2)
使用点表示法或括号表示法。
您正在将对象传递到notification
object
中的函数notification_box
。函数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
和getter
setter
更酷
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>
答案 1 :(得分:1)
使用点符号
可以访问将json传递给函数object.attribute
在您的情况下使用
msg.msg #First msg is javascript object and second msg is attribute