在我正在构建的 CMS 中,我想拥有自己的 javascript 命名空间对象 $cms
。这个对象应该有一个方法/函数 hasIdentity
返回用户是否登录的状态。
有没有办法让这个方法/函数返回状态而不必求助于:
- AJAX
- 全局变量
- 或在 PHP 中重写以下脚本
这就是我所拥有的 var:
var $cms = {
hasIdentity: function()
{
return /* the status provided by PHP */;
}
};
这可能有点审美问题,但我不想诉诸于此:
// write this global var;
var $isLoggedIn = false;
var $cms = {
hasIdentity: function()
{
return $isLoggedIn;
}
};
或者这个:
var $cms = {
hasIdentity: function()
{
$isLoggedIn = this.do.some.ajax.call();
return $isLoggedIn;
}
};
我可能更多地考虑一种 OOP 方法,比如通过在 PHP 中编写来构造 $cms
对象:
<script type="text/javascript">
$cms = new $cms( <?php echo $loggedIn ? 'true', 'false' ?> );
</script>
现在,我相信我不能像在 Javascript 中那样使用 new
关键字,但我希望你明白我的意思,看看我想用这个做什么。
最佳答案
你也可以这样做:
$cms.isLoggedIn = <?php echo $loggedIn ? 'true', 'false' ?>;
那是因为您的 $cms 对象不是构造函数。如果是,您将能够新建
它。
var CMS = function (loggedIn) {
this.loggedIn = loggedIn;
};
CMS.prototype.hasIdentity = function () {
return this.loggedIn;
};
$cms = new CMS(<?php echo $loggedIn ? 'true', 'false' ?>);
关于php - 让javascript函数基于PHP变量返回状态的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316819/