首页 > angular 属性和变量的问题

angular 属性和变量的问题

$scope.username = 'hello';
$scope.user = {name:'hello'};

求解$scope.user.name在作用域继承上比$scope.username的优势。


^^,你真的来问这个了。好吧,正巧我有你问题的上下文,就再给你个类比好了:

//假设你的scope上有变量username
var scope = {
    username: 'Hanmeimei'
};

//现在要创建一个新的scope继承自上面那个scope
var childScope = Object.create(scope);

//这时我们检查两个scope里的username,会发现值是一样的,都是Hanmeimei
console.log(scope.username);//Hanmeimei
console.log(childScope.username);//Hanmeimei


//但是,你在childScope里对username做了改变
childScope.username = 'LiLei';

//这时再看两个scope中的username分别是什么?
console.log(scope.username);//Hanmeimei
console.log(childScope.username);//LiLei

OK,解释完直接在scope上赋值原始类型username,我们在看如果给他一个引用类型的user对象会怎么样?

var scope = {user: {username: 'Hanmeimei'}};

//现在要创建一个新的scope继承自上面那个scope
var childScope = Object.create(scope);

//这时我们检查两个scope里的user.username,会发现值是一样的,都是Hanmeimei
console.log(scope.user.username); //Hanmeimei
console.log(childScope.user.username); //Hanmeimei


//然后,你在childScope里对user.username做了改变
childScope.user.username = 'LiLei';

//这时再看两个scope中的username分别是什么?
console.log(scope.user.username); //LiLei
console.log(childScope.user.username); //LiLei

//都变成LiLei了,有木有

最后真心建议看文档,内容还是OK的

【热门文章】
【热门文章】