论坛首页 Web前端技术论坛

javascript面向对象技术基础(三)

浏览 12665 次
精华帖 (12) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-30  
achun 写道
忘掉private属性吧,这根本就和js的理念不符.
js的世界不是这样的.
纯粹是画蛇添足


千万别把话说绝对~
0 请登录后投票
   发表时间:2008-12-30  
没有太明白这段代码

person = person || defaultperson;  //接受person对象参数

result = expression1 || expression2

参数
result

任何变量。

expression1

任何表达式。

expression2

任何表达式。

说明
如果两个表达式中有一个或两个等于 True,则 result 是 True。

lz能否说明下?
0 请登录后投票
   发表时间:2008-12-30  
hanjs 写道
没有太明白这段代码

person = person || defaultperson;  //接受person对象参数

result = expression1 || expression2

参数
result

任何变量。

expression1

任何表达式。

expression2

任何表达式。

说明
如果两个表达式中有一个或两个等于 True,则 result 是 True。

lz能否说明下?

"||"就是“或”操作符俄,只要一个为真,结果当然为真了....
0 请登录后投票
   发表时间:2008-12-30   最后修改:2008-12-30
按说明,应该是person=false才对?为何等于后面的defaultperson了?

JScript 使用下面的规则来把非 Boolean 值转换为 Boolean 值:

所有对象都被认为是 true。
字符串当且仅当为空时才被认为是 false。
null 和 undefined 被认为是 false。
数字当且仅当为 0 时才是 false。

明白了,对象都被认为是true,谢谢
0 请登录后投票
   发表时间:2009-01-04  
achun 写道

忘掉private属性吧,这根本就和js的理念不符.js的世界不是这样的.纯粹是画蛇添足


function People(){
    this.name = "fornever";//共有
    var age = 11; //私有
}

0 请登录后投票
   发表时间: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变量,否则返回后者。
0 请登录后投票
   发表时间: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"
0 请登录后投票
   发表时间: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 
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics