function test(name){ this.name=name; return "你好," +this.name +'<br/>'; } var rval = test('Tom'); document.writeln( rval ); var obj = new test('Mary'); for(var i in obj){ document.writeln(i+":"+obj[i]); }
时间: 2024-01-18 19:01:57 浏览: 141
这段代码的输出结果为:
你好,Tom
name:Mary
首先,调用test函数并传入参数'Tom',返回字符串"你好,Tom",并将其赋值给变量rval,输出该字符串。
然后,使用new关键字创建test函数的实例对象obj,并传入参数'Mary'。此时,test函数内部的this指向创建的实例对象obj,将参数name赋值给实例对象的属性name。
最后,使用for...in循环遍历实例对象obj的属性,输出name属性及其值"Mary"。注意,函数内部的return语句只会影响函数的返回值,并不会影响函数内部this指向的对象。
相关问题
def turnvalue(Value): if(Value.ctype == 1): #string _str = Value.value _str.lstrip(' '); _str.rstrip(' '); if('0x' in _str): tmp = _str.split('0x') #print 'tmp : ',tmp rval = tmp[1]; #print 'tmp[0] ',tmp[0] #print 'rval : ',rval if(tmp[0] == ''): rval = "%s%s"%("'h",rval) else: rval = _str; else: rval = _str elif(Value.ctype == 2): #number _num = Value.value rval = int(_num) if(_num != rval): #real type #print '_num is ',_num rval = _num else: #int type rval = str(rval) elif(Value.ctype == 0): #empty rval = ' ' else: #other type print(inRed("[Error] value.ctype is not right")) sys.exit() return rval
这是一个Python的函数定义,函数名为turnvalue,参数为Value。函数内部使用了Python的if条件语句,判断Value的ctype是否为1。如果是1,函数会执行一些操作(这里没有给出);否则函数不做任何操作。
#include <bits/stdc++.h> using namespace std; typedef struct T { char data[4]; struct T *rchild,lchild; } BiTNode,BiTree; char a[100][3]; int depth = 0; int isopchar(char c) { switch(c) { case '+':return 1; case '-':return 2; case '':return 3; case '/':return 4; } return false; } void ini_T(BiTree &T) { T = new BiTNode; T->lchild = NULL; T->rchild = NULL; } void Create_T(BiTree &t) { if(a[depth][0] == '#') { t = NULL; depth++; } else { t = new BiTNode; strcpy(t->data,a[depth++]); Create_T(t->lchild); Create_T(t->rchild); } } void Trave(BiTree t) { if(t) { if(isopchar(t->data[0])) { cout << "("; } Trave(t->lchild); cout << t->data; Trave(t->rchild); if(isopchar(t->data[0])) { cout << ")"; } } } double calculate(BiTree t) { if(t == NULL) { return 0; } if(t->lchild == NULL && t->rchild == NULL) { return atof(t->data); } double lval = calculate(t->lchild); double rval = calculate(t->rchild); switch(t->data[0]) { case '+': return lval + rval; case '-': return lval - rval; case '': return lval * rval; case '/': return lval / rval; default: return 0; } } int main() { char b[1000]; while(gets(b) != NULL) { BiTree T; ini_T(T); int i, p = 0,q = 0; for(i = 0 ; b[i] ; ++i) { if(b[i] != ' ') a[p][q++] = b[i]; else { a[p++][q] = '\0'; q = 0; } } a[p++][q++] = '\0'; Create_T( T ); Trave( T ); cout << '=' << calculate(T)<<endl; depth = 0; } return 0; }
这段代码是一个简单的表达式树求值程序,可以读入多行表达式,每行表达式以空格分隔符分隔,输出表达式树的中序遍历结果和表达式的计算结果。
程序的执行过程如下:
1. 定义了一个二叉树结构体 `BiTNode` ,并定义了 `BiTree` 作为 `BiTNode *` 类型的别名。
2. 定义了字符数组 `a` 用来存储读入的表达式,最大长度为 100,每个元素长度为 3。
3. 定义了变量 `depth` 用来记录当前读入表达式的深度。
4. 定义了函数 `isopchar` 用来判断一个字符是否为操作符,是则返回对应的字符编码,否则返回 false。
5. 定义了函数 `ini_T` 用来初始化一棵二叉树。
6. 定义了函数 `Create_T` 用来根据读入的表达式构建一棵二叉树,其中 `#` 表示空节点。
7. 定义了函数 `Trave` 用来进行中序遍历,并输出表达式的中序遍历结果。
8. 定义了函数 `calculate` 用来计算表达式树的值,使用递归实现。
9. 在 `main` 函数中,使用 `gets` 函数读入表达式,然后调用 `Create_T` 函数构建表达式树,再调用 `Trave` 函数输出中序遍历结果,最后调用 `calculate` 函数计算表达式树的值并输出。
需要注意的是,这段代码使用了 `gets` 函数,该函数已经在 C++11 标准中被弃用,因此建议使用 `std::getline` 函数代替 `gets` 函数。同时,该代码没有进行输入合法性检查,如果输入的表达式不符合要求,可能会导致程序出错。
阅读全文