javascript_core阅读笔记(四)

来源:互联网 发布:上海网络推广招聘 编辑:程序博客网 时间:2024/04/30 10:09
本系列内容是阅读javascript_core的笔记,原文见http://abruzzi.iteye.com/

18. javascript中的引用始终指向最终的对象,而并非引用本身。
var obj = {};// 空对象var ref = obj;// 引用obj.name = "objectA";alert(ref.name);// "objectA"obj = ["one", "two", "three"];// obj指向了另一个对象alert(ref.name);// "objectA"alert(obj.length);// 3alert(ref.length);// undefined

19. javascript中new操作符的工作方式:首先,创建一个空对象,然后调用函数的apply方法,将这个空对象传入作为apply的第一个参数,即上下文参数
var triangle = new Shape("triangle",23);

相当于
var triangle = {};Shape.apply(triangle, ["triangle",23]);

20. 柯里化就是预先将函数的某些参数传入,得到一个简单的函数,但是预先传入的参数被保存在闭包中
var adder = function(num) {return function(y) {return num + y;}}var inc = adder(1);var dec = adder(-1);alert(inc(99));// 100alert(dec(101));// 100alert(adder(100)(2));// 102alert(adder(2)(100));// 102

21. 根据不同的浏览器,原型对象prototype有不同的实现,比如
var base = {name : "base",getInfo : function() {return this.name;}}var ext1 = {id : 0,__proto__ : base}var ext2 = {id : 9,__proto__ : base}alert(ext1.id);alert(ext1.getInfo());alert(ext2.id);alert(ext2.getInfo());

以上代码在firefox下可以跑,在ie下则有js错误
原创粉丝点击