码迷,mamicode.com
首页 > 编程语言 > 详细

javascript高级语法学习

时间:2014-09-10 19:26:30      阅读:352      评论:0      收藏:0      [点我收藏+]

标签: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(); 

 

javascript高级语法学习

标签:blog   io   java   ar   for   div   cti   sp   代码   

原文地址:http://www.cnblogs.com/sntetwt/p/3964995.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!