Quantcast
Channel: Библиотека знаний
Viewing all articles
Browse latest Browse all 1318

Java-Script - [From an instance context:]

$
0
0

Java-Script

Библиотеки скриптов

Сайты

Песочницы/SandBox

Программное обеспечение

Библиотеки

Шаблогизаторы

Скрипты

Отладка / Chrome DevTools

MVC (Model Views Controller) Framework

MCV (Model Collection Views) Framework

  • Backbone.js

Лямбда функции

+function(y){return y+1;}(6);

Функции

# Функция с определенным кол-вом параметров
function f(a, b, c, d){ console.log(a + b + c + d)} 
# Обычный способ вызова
f(1,2,3,4); 
# f.call()
# Метод call жёстко фиксирует количество аргументов, через запятую
f.call(context,1,2,3,4); 
# Вызов функции при помощи func.apply работает аналогично func.call, но принимает массив аргументов вместо списка:
f.apply(context,[1,2,3,4]);

При помощи call/apply можно легко взять метод одного объекта, в том числе встроенного, и вызвать в контексте другого.

function sayHi(){ 
  # Используем эту технику для упрощения манипуляций с arguments. Как мы знаем, это не массив, а обычный объект.. Но как бы хотелось вызывать на нём методы массива.
  arguments.join=[].join;// одолжили метод (1) 
  var argStr = arguments.join(':');// (2) 
  alert(argStr);// сработает и выведет 1:2:3 
} 
sayHi(1,2,3);

Пример JS.Include

Html:

<scripttype="text/javascript">var STATICVER = 83;</script>

Java-script:

try{
  js ={"STATICVER": STATICVER};} catch(e){ js ={};}; 
js.include=function(path){if(typeof(this.STATICVER)=="undefined"){
		this.STATICVER =newDate().getUTCDate();}
	document.write('<script type="text/javascript" src="'+ path.replace('STATICVER', this.STATICVER)+'"></sc'+'ript>');} 
js.dynamicInclude =function(path, callback){if(typeof(this.STATICVER)=="undefined"){
		this.STATICVER =newDate().getUTCDate();}
	$.ajax({
		dataType:"script",
		cache:true,
		url:"/js/"+ this.STATICVER +"/"+ path
	}, callback);} 
js.include('/js/STATICVER/crimea.js');

Классы

function Foo(){}var foo =new Foo(); 
typeof Foo;// == "function"typeof foo;// == "object" 
foo instanceof Foo;// == true
foo.constructor.name;// == "Foo"
Foo.name// == "Foo"     
Foo.prototype.isPrototypeOf(foo);// == true 
Foo.prototype.bar=function(x){return x+x;};
foo.bar(21);// == 42

From an instance context:

function A(){this.getClass=function(){return window[this.constructor.name];} 
    this.getNewInstance=function(){returnnew window[this.constructor.name];}} 
var a =new A();
console.log(a.getClass());//  function A { // etc... } 
// you can even:var b =new a.getClass();
b instanceof A;// true

From static context:

function B(){}; 
B.getClass=function(){return window[this.name];} 
B.getInstance(){returnnew window[this.name];}

Минимизация/сжатие

Статьи

Обещания / Promises

Паттерн стратегии на Java-Script

var Animal =function(){}
Animal.prototype.say=function(t){} 
var Dog =function(){}var Cat =function(){} 
var Say =function(obj){
  obj.say();}; 
Dog.prototype.say=function(){
 Animal.prototype.say.call(this);
 console.log('gav');} 
Cat.prototype.say=function(){
 Animal.prototype.say.call(this);
 console.log('myau');} 
var dog =new Dog();var cat =new Cat(); 
Say(cat);
Say(dog);

Ссылки

Видеоуроки

Библиотеки

Q-A

  • Какполучить размер ассоциативного массива?
    • Object.keys(data.data).length где data.data - является массивом

Viewing all articles
Browse latest Browse all 1318