javascript - angular 属性和变量的问题
本文介绍了javascript - 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的
这篇关于javascript - angular 属性和变量的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文