javascript - angular 属性和变量的问题

查看:64
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆