js 变量作用域

everccnight everccnight 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
封装了一个函数 ,希望其内部变量提取到外部来 该如何 处理
var picTouse = function(){

function gray() {
console.log(picTouse.id);
$(".model").css("display", "flex");
var id = $(".active")[0].id,
canvas = $("#canvas"+id)[0],
ctx = canvas.getContext('2d'),
width = canvas.width,
height = canvas.height,
src = canvas.toDataURL("image/png"),
imgs,
img = new Image();
img.src = src;
imgs = img;
imgs.onload = function () { //图片要等其加载完成之后才能成在canvas中使用
ctx.drawImage(imgs, 0, 0,width,height);
var pixels = ctx.getImageData(0,0,width,height);
var pixeldata = pixels.data;
for(var i=0,len = pixeldata.length ;i<len;i+=4){
var gray =parseInt( pixels.data[i]*0.3 + pixels.data[i+1] *0.59 + pixels.data[i+2]*0.11);
pixels.data[i] = gray;
pixels.data[i+1] = gray;
pixels.data[i+2] = gray;
}
grays++;
ctx.putImageData(pixels, 0, 0);
$(".model").css("display", "none");
};
}
/*浮雕按钮*/
function emboss() {
$(".model").css("display", "flex");
var id = $(".active")[0].id,
canvas = $("#canvas"+id)[0],
ctx = canvas.getContext('2d'),
width = canvas.width,
height = canvas.height,
src = canvas.toDataURL("image/png"),
imgs,
img = new Image();
img.src = src;
imgs = img;
imgs.onload = function () { //图片要等其加载完成之后才能成在canvas中使用
ctx.drawImage(imgs, 0, 0,width,height);
var pixels = ctx.getImageData(0,0,width,height);
var lastR= pixels.data[0],lastG= pixels.data[1],lastB= pixels.data[2];
for (var i=1;i<canvas.width-1;i++){
for (var j=1;j<canvas.height-1;j++){
var currentPixel = 4*canvas.width*j + 4* i;
var r = pixels.data[currentPixel],
g = pixels.data[currentPixel+1],
b = pixels.data[currentPixel+2];
pixels.data[currentPixel] +=(128-lastR);
pixels.data[currentPixel+1] +=(128-lastG);
pixels.data[currentPixel+2] +=(128-lastB);
lastR = r;
lastG = g;
lastB = b;
}
}
embosss++;
ctx.putImageData(pixels, 0, 0);
$(".model").css("display", "none");
};
}
return{

gray:gray,
emboss:emboss,

}


}()
希望把 var id = $(".active")[0].id,
canvas = $("#canvas"+id)[0],
ctx = canvas.getContext('2d'),
width = canvas.width,
height = canvas.height,
src = canvas.toDataURL("image/png"),
imgs,
img = new Image();
img.src = src;
imgs = img; 这一部分 提取出来 变成共有的 该如何提取
...全文

相关推荐

javascript变量作用域

javascript变量作用域 希望对大家有帮助

这些年_那份情

JS中作用域以及变量范围分析

主要介绍了JS中作用域以及变量范围分析,需要的朋友可以参考下

weixin_38707061

JS中作用域和变量提升(hoisting)的深入理解

相信大家也都发现了,在网上关于JS的变量和作用域的文章有很多,但真正能讲清楚,能深入理解的文章很少。在阅读了很多人的文章以后,我决定综合起来,结合实际代码,希望能够以一个比较清楚完整的方式让大家真正理解。有需要的朋友们下面来一起看看吧。

weixin_38690275

js变量以及其作用域详解

一、变量的类型   Javascript和Java、C这些语言不同,它是一种无类型、弱检测的语言。它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量。例如: 代码如下: i=100;//Number类型 i=”variable”;//String类型 i={x:4};//Object类型 i=[1,2,3];//Array类型   JS的这种特性虽然让我们的编码更加灵活,但也带来了一个弊端,不利于Debug,编译器的弱检测让我们维护冗长的代码时相当痛苦。 二、变量的声明   JS中变量申明分显式申明和隐式申明。   var i=100;//显式

weixin_38739942

一道关于JavaScript变量作用域的面试题

主要为大家介绍了一道关于JavaScript变量作用域的面试题,如何解决这道面试题,感兴趣的小伙伴们可以参考一下

weixin_38695061
评论 4
收藏 已收藏
分享
返回顶部
everccnight
JavaScript 87,984 成员 224,681 内容