javascript - angular中,在controller里定义对象,var xx和$scope.xx的区别
ringa_lee
ringa_lee 2017-04-10 14:37:40
[JavaScript讨论组]

如果一个对象不需要在页面中用到,

直接用var xx;

那么该对象的作用域有多大


9.25补充

先上代码:

app.controller('MainCtrl', function($scope) {
    $scope.name = "x";
    var name1 = 'xx';
    $scope.foo = function() {
        var name2 = 'xxx';
        console.log(name1);
        console.log(name2);
    };
});

$scope定义范围基本上明白了
那么name2范围呢?在foo这个函数内?
name1的范围呢?

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
阿神

变量作用域参照 js 规范说明, var 和 $scope 区别,主要就是 $scope 上的变量能被一些 watcher 检测到变化,如果有的话。

大家讲道理

我的简单理解是,而var定义的变量,仅仅是当前作用域。

$scope是被「输出」的,比到view中,到watcher中。

(问题其实有点问题,$scope.xx不是变量。)

阿神

$scope 是AngularJS自动帮你创建的对象,主要用于数据双向绑定,他的作用域是在controller或者directive控制的模板区域,简单理解是某个模板区域的数据绑定上下文,你自己通过var定义的变量作用域在当前函数内部,和$scope不是一个级别的东西,也就无所谓区别了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号