标签:blog io java ar for div cti sp 代码
可维护的代码意味着: 可读的 一致的 可预测的 看上去就像是同一个人写的 已记录 命名函数表达式 (function fn(){}) 他是表达式的原因是因为括号 ()是一个分组操作符,它的内部只能包含表达式 eval(‘(‘ + json + ‘)‘) JSON字符串通常被包含在一个圆括号里,会让解析器强制将JSON的花括号解析成表达式而不是代码块 JavaScript核心 1.对象Object Object是一个属性的集合,并且都拥有一个单独的原型对象[prototype object]. 这个原型对象[prototype object]可以是一个 object或者null值。 2.原型链__proto__ 原型链是一个由对象组成的有限对象链用于实现继承和共享属性。 var a = { x: 10, calculate: function (z) { return this.x + this.y + z } }; var b = { y: 20, __proto__: a }; var c = { y: 30, __proto__: a }; // 调用继承过来的方法 b.calculate(30); // 60 3.构造函数constructor 自动为创建的新对象设置了原型对象(prototype object) 。原型对象存放于 ConstructorFunction.prototype 属性中 。 // 构造函数 function fn(y) { this.y = y; } // 继承属性"x" Foo.prototype.x = 10; var b = new Foo(20); b.__proto__ === fn.prototype; // true // "fn.prototype"自动创建了一个特殊的属性"constructor",并指向b的构造函数本身 b.constructor === fn; // true fn.prototype.constructor === fn // true 4.执行上下文 var a = function (e) { return { // 暴露公开的成员 add: function (x, y) { } }; } 调用: ar o = new a(‘e‘); o.add(2, 2); 引用全局变量 (function ($) { 调用:$ } (jQuery)); var o = (function ($) { var my = {name = ‘sn‘} return my; })(jQuery); 调用:o.name 扩展 var o = (function (my) { my.add = function () {}; return my; } (obj)); 松耦合扩展 var o = o || {} ; var o = (function (my) { return my; } (jQuery || {})); 克隆与继承 var o = (function (old) { var my = {},key; for (key in old) { if (old.hasOwnProperty(key)) { my[key] = old[key]; } } return my; } (obj)); 子模块 obj.sub = (function () { var my = {}; return my; } ());
函数语法 if (typeof Function.prototype.method !== "function") { Function.prototype.method = function (name, call) { this.prototype[name] = call; return this; }; } 扩展对象 var fn = function (name) { this.name = name; } .method(‘get‘, function () { return this.name; }) 调用 var a = new fn(‘p‘); a.get();
标签:blog io java ar for div cti sp 代码
原文地址:http://www.cnblogs.com/sntetwt/p/3964995.html