锁定老帖子 主题:javascript面向对象技术基础(三)
精华帖 (12) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-30
achun 写道 忘掉private属性吧,这根本就和js的理念不符.
js的世界不是这样的. 纯粹是画蛇添足 千万别把话说绝对~ |
|
返回顶楼 | |
发表时间:2008-12-30
没有太明白这段代码
person = person || defaultperson; //接受person对象参数 result = expression1 || expression2 参数 result 任何变量。 expression1 任何表达式。 expression2 任何表达式。 说明 如果两个表达式中有一个或两个等于 True,则 result 是 True。 lz能否说明下? |
|
返回顶楼 | |
发表时间:2008-12-30
hanjs 写道 没有太明白这段代码
person = person || defaultperson; //接受person对象参数 result = expression1 || expression2 参数 result 任何变量。 expression1 任何表达式。 expression2 任何表达式。 说明 如果两个表达式中有一个或两个等于 True,则 result 是 True。 lz能否说明下? "||"就是“或”操作符俄,只要一个为真,结果当然为真了.... |
|
返回顶楼 | |
发表时间:2008-12-30
最后修改:2008-12-30
按说明,应该是person=false才对?为何等于后面的defaultperson了?
JScript 使用下面的规则来把非 Boolean 值转换为 Boolean 值: 所有对象都被认为是 true。 字符串当且仅当为空时才被认为是 false。 null 和 undefined 被认为是 false。 数字当且仅当为 0 时才是 false。 明白了,对象都被认为是true,谢谢 |
|
返回顶楼 | |
发表时间:2009-01-04
achun 写道 忘掉private属性吧,这根本就和js的理念不符.js的世界不是这样的.纯粹是画蛇添足 function People(){ this.name = "fornever";//共有 var age = 11; //私有 } |
|
返回顶楼 | |
发表时间:2009-01-04
hanjs 写道 按说明,应该是person=false才对?为何等于后面的defaultperson了? JScript 使用下面的规则来把非 Boolean 值转换为 Boolean 值: 所有对象都被认为是 true。 字符串当且仅当为空时才被认为是 false。 null 和 undefined 被认为是 false。 数字当且仅当为 0 时才是 false。 明白了,对象都被认为是true,谢谢 ||符号存在二义性,因为js里可以存在单值表达式,比如if(100),if(a)之类的语句,这时虽然js会做自动的类型转化,但是返回的结果仍然是单值表达式的结果,因此 person = person || defaultperson 如果person有意义,即不为null或undefined或0或""或false,就返回person变量,否则返回后者。 |
|
返回顶楼 | |
发表时间:2009-01-04
sdcyst 写道 langhua9527 写道Java代码 "name":"defaultname" 与 name:"defaultname" 是一样的  var defaultname = "";  "name":defaultname 与 name:defaultname 是一样的   "name":"defaultname" 与 name:"defaultname" 是一样的 var defaultname = ""; "name":defaultname 与 name:defaultname 是一样的 "name":"defaultname" 与 name:"defaultname" 是一样的  var defaultname = "";  "name":defaultname 与 name:defaultname 是一样的   "name":"defaultname" 与 name:"defaultname" 是一样的 var defaultname = ""; "name":defaultname 与 name:defaultname 是一样的 没看懂到底是什么意思........ 总体要表达的意思应该是:对象中冒号前面的属性名称用不用引号都可以,因为它(属性)都是字符串类型,也许js为了简便允许不写引号~,但是冒号后面的内容可以是任意类型数据,所以name:defaultname的情况defaultname会被认为是一个变量,而不是字符串"defaultname" |
|
返回顶楼 | |
发表时间:2009-02-13
seven_cuit 写道 这种方式应该算是一种对象直接量声明,那么在这种形式的对象声明中,怎么让一个属性成为private呢;另外,想请教一下有没有js编码风格或规范之类的建议? function Person() { var name="bill"; var age=18; this.getName=function() { return name; } } var p=new Person(); alert(p.getName()+"___"+p.name)//bill___undefined |
|
返回顶楼 | |