javascript 进阶

来源:互联网 发布:软件项目管理方法 编辑:程序博客网 时间:2024/06/06 07:42

将对象变为不可扩展:
Object.preventExtensions(obj);
将对象配置为不可配置(不太明白不可配置的意思)
Object.seal
将对象值设置为不可更改:
Object.freeze


关于函数对象:
func.caller : 调用该函数的对象
arguments.callee : 返回使用该对象的函数(一般用于匿名递归)
toString: 返回函数代码
valueOf: 返回func(x,y,z)


关于对象
call: 已其他对象的身份调用该对象的方法

obj = {    name : 'lai',    say : function(someone){        return 'hello ' + someone + ' this is '+this.name    }}obj1 = {name : 'liu'}console.log(obj.say('xxx'))console.log(obj.say.call(obj1,'xxoo'));

apply 与call类似,不过它可以使用数组传参
console.log(obj.say.call(obj1,list));

constructor: 对象实例的构造器
prototype : 构造器的原型
_ _ proto __: 对象实例的构造器的原型

PS:如果构造器的原型改变了,其下的对象实例的constructor 会变成其原型(function Object),更正方法(Person.prototype.constructor = Person)

原创粉丝点击